home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / misc / agahardwareref.lha / AAMANUAL.TXT
Text File  |  1993-08-27  |  99KB  |  2,047 lines

  1.                   ______________________________________
  2.                   \___  \___  \       \___  \___  \     \  _  
  3.                   /  /--/  /  /  /_/  /  / -/     /  /__/|(_) 
  4.                  /_____/_____/__/\/__/_____/__/__/__/\__\|(_)   
  5.                  \_____\_____\__\/\__\_____\__\__\__\/Dt ---- 
  6.                                           Presents 
  7.                     
  8.                           Specification for the
  9.                        ­­­­­­­­­­­­­­­­­­­­­­­­­­­­   
  10.                        ADVANCED AMIGA CHIP SET (AA)
  11.                        ­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  12.                    SUPPLIED & TYPED BY FIREFLASH/SPONGE
  13.                                 
  14.                                CO/X\B/-\T:18 
  15.  
  16.                          ­ Release Date 24.08.93 ­
  17.                     
  18.                        ­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  19.  
  20.  
  21.                          TABLE OF CONTENTS
  22.                          -----------------
  23.  
  24. 1.  SUMMERY OF NEW features for AA
  25. 2.  EXPLANATION of NEW Features
  26. 3.  List of Registers orderd by address
  27. 4.  List of registers orderd alphabetically
  28. 5.  NEW LISA DISPLAY MODES
  29.  
  30.  
  31.  
  32.  
  33. 1. SUMMERY OF NEW FEATURES FOR AA
  34. ---------------------------------
  35.  
  36. 32 bit wide data bus supports input of 32-bit wide bitplane data and allows
  37. doubling of memory bandwidth. Additional doubling of bandwidth can be
  38. achieved 
  39. by using FAST page mode Ram. The same bandwidth enhancements are availble
  40. for sprites. Also the maximum number of bitplanes useable in all modes was
  41. increased to eight (8).
  42.  
  43. The color Palette has been expanded to 256 colors deep and 25 bits wide (8
  44. RED,8 GREEN,8 BLUE,1 GENLOCK). This permits display of 256
  45. simultaneouscolors in all resolutions. A palette of 16,777,216 colors are
  46. available in all resolutions.
  47.  
  48. 28Mhz clock input allows for cleaner definition of HIRES and SHRES pixels 
  49. ALICE`S clock genarator is synchronized by means of LISA`s 14MHz and SCLK
  50. outputs, Genlock XCLK and XCLKEN pins have been eliminated (external MUX is
  51. now required).
  52.  
  53. A new register bit allows sprites to appear in the screen border regions
  54. (BRDRSPRT).
  55.  
  56. A bitplane mask field of 8 bits allows an address offset into the color
  57. palette.
  58. Two 4-bit mask fields do the same for odd and even sprites.
  59.  
  60. In Dual Playfield modes,2 4-bitplane playfields are now possible in all
  61. resolutions.
  62.  
  63. Two Extra high-order playfield scrollbits allow seamless scrolling of up to
  64. 64 bit wide bitplanes in all resolutions. Resolution of bitplane scroll,
  65. display window,and horizontal sprite position has been improved to 35ns in
  66. all resolutions.
  67.  
  68. A new 8bitplane HAM mode has been created, 6 for colors and 2 for control
  69. bits. All HAM modes are available in all resolutions (not just LORES as
  70. before).
  71.  
  72. A RST_input pin has been added, which resets all the bits contained in
  73. reg-isters that were new for
  74. ECSorLISA:BPLCON3,BPLCON4,CLXCON2,DIWHIGH,FMODE.
  75.  
  76. Sprite resolution can be set to LORES,HIRES,SHRES,independant of bitplane
  77. resolution.
  78.  
  79. Attached Sprites are now available in all resolutions.
  80.  
  81. Hardware Scan Doubling support has been added for bitplanes and sprites.
  82. This is intended to allow 15KHz screens to be intelligently displayed on a
  83. 31KHz monitor and share the display with 31KHz screens.
  84.  
  85. 2. EXPLANATION OF NEW FEATURES
  86. ------------------------------
  87.  
  88. Bitplanes
  89. ---------
  90. There are now 8 bitplanes instaed of 6. In single playfield modes they can
  91. address 256 colors instead of 64. As long as the memory architecture can
  92. support the bandwidth, all 8 bitplanes are available in all 3 resolutions
  93. In the same vein, 4+4 bitplane dualplayfield is available in all 3
  94. resolutions, unless
  95. bitplane scan-doubling is enabled, In which case both playfields share the
  96. same bitplane modulus register. Bits 15 thru 8 of  BPLCON14 comprise an 8
  97. bit mask for the 8 bitplane address, XOR`ing the individual bits.
  98. This allows the copper to exchange color maps with a single instruction.
  99. BPLCON1
  100. now contains an 8 bit scroll value for each of the playfields. Granularity
  101. of scroll now extends down to 35nSec.(1 SHRES pixel), and scroll can delay 
  102. playfield thru 32 bus cycles. Bits BPAGEM and BPL32 in new register FMODE
  103. control size of bitplane data in BPL1DAT thru BPL8DAT.
  104.  
  105. The old 6 bitplane HAM mode, unlike before, works in HIRES and SHRES
  106. resolutions.
  107. As before bitplanes 5 and 6 control it`s function as follows:
  108.  
  109. |BP6|BP5|   RED  |  GREEN | BLUE             |
  110. |--------------------------------------------|
  111. | 0 | 0 | select new base register (1 of 16) |
  112. |--------------------------------------------|
  113. | 0 | 1 |  hold  |  hold  | modify           |
  114. |--------------------------------------------|
  115. | 1 | 0 | modify |  hold  |  hold            |
  116. |--------------------------------------------|
  117. | 1 | 1 |  hold  | modify |  hold            |
  118. ----------------------------------------------
  119.  
  120. There is a new 8 bitplane HAM (Hold and Modify) mode. This mode is invoked
  121. when BPU field in BPLCON0 is set to 8 , and HAMEN is set. Bitplanes 1 and 2
  122. are used as control bits analagous to the function of bitplanes 5 and 6 in
  123. 6 bitplane HAM mode:
  124.  
  125. |BP2|BP1|   RED  |  GREEN | BLUE             |
  126. |--------------------------------------------|
  127. | 0 | 1 | select new base register (1 of 64) |
  128. |--------------------------------------------|
  129. | 0 | 1 |  hold  |  hold  | modify           |
  130. |--------------------------------------------|
  131. | 1 | 0 | modify |  hold  |  hold            |
  132. |--------------------------------------------|
  133. | 1 | 1 |  hold  | modify |  hold            |
  134. ----------------------------------------------
  135.  
  136. Since only 6 bitplanes are available for modify data, the data is placed in
  137. 6 MSB. The 2 LSB are left unmodified, which allows creation of all
  138. 16,777,216 colors simultaneously, assuming one had a large enough screen
  139. and picked one`s base registers judiciously. This HAM mode also works in
  140. HIRES and SHRES modes.
  141.  
  142. For compatibility reasons EHB mode remains intact. Its existence is rather
  143. moot in that we have more than enough colors in the color table to replace
  144. its functionality. As before, EHB is invoked whenever SHRES = HIRES =
  145. HAMEN= DPF = 0 and BPU = 6. Please note that starting with ECS DENISE
  146. there is a bit in BPLCON2 which disables this mode (KILLEHB).
  147.  
  148. Bits PF2OF2,1,0 in BPLCON3 determine second playfield`s offset into the
  149. color table. This is now necessary since playfields in DPF mode can have up
  150. to 4 bitplanes. Offset value are as defined in register map.
  151.  
  152. BSCAN2 bit in FMODE enables bitplane scan-doubling. When V0 bit of DIWSTRT
  153. matches V0 of vertical beam counter, BPL1MOD contains the modulus for the
  154. display line, else BPL2MODis used. When scan-doubled both odd and even 
  155. bitplanes use the same modulus on a given line, whereas in normal mode odd
  156. bitplanes used BPL1MOD and even bitplanes used BPL2MOD. As a result Dual
  157. Playfields screens will probably not display correctly when scan-doubled.
  158.  
  159. Sprites:
  160. --------
  161. Bits SPAGEM and SPR32 in FMODE whether size of sprite load datain
  162. SPR0DATA(B) thru SPR7DATA(B) is 16,32, or 64 bits, analagous to bitplanes.
  163. BPLCON3 contains several bits relating to sprite behavior. SPRES1 and
  164. SPRES0 control sprite resolution, whether they conform to theECS standard
  165. or override tp LORES,HIRES,or SHRES. BRDRSPRT, when high,allows sprites to
  166. be visible in border areas. ESPRM7 thru ESPRM4 allow relocation of the even
  167. sprite color map. OSPRM7 thru OSPRN4 allow relocation of the odd sprite
  168. color map. In the case of attached sprites OSPRM bits are used.
  169.  
  170. SSCAN2 bit in FMODE enables sprite scan-doubling. When enabled, individual
  171. SH10 bits in SPRxPOS registers control whether or not a given sprite is to
  172. be scan-doubled. When V0 bit of SPRxPOS register matches V0 bit of vertical
  173. beam counter, the given sprite`s DMA is allowed to proceed as before. If
  174. the don`t match, then sprite DMA is disabled and LISA reuses the sprite
  175.  data
  176. from the previous line. When sprites are scan-doubled, only the position
  177. and control registers need be modified by the programmer; the data
  178. registers need no modification.
  179.  
  180. NOTE: Sprite vertical start and stop positions must be of the same parity,
  181. i.e. both odd or even.
  182.  
  183. Compatibility:
  184. --------------
  185. RST_pin resets all bits in all registers new to AA. These registers
  186.  include:
  187. BPLCON3,BPLCON4,CLXCON2,DIWHIGH,FMODE.
  188.  
  189. ECSENA bit (formerly ENBPLCN3) is used to disable those register bits in
  190. BPLCON3 that are never accessed by old copper lists, and in addition are
  191. required by old style copper lists to be in their default
  192. settings.Specifically ECSENA forces the following bits to their default low
  193. settings: BRDRBLNK,BRDNTRAN,ZDCLKEN,EXTBLKEN, and BRDRSPRT.
  194.  
  195. CLXCON2 is reset by a write to CLXCON, so that old game programs will be
  196. able to correctly detect collisions.
  197.  
  198. DIWHIGH is reset by writes to DIWSTRT or DIWSTOP. This is interlock is
  199. inhertied from ECS Denise.
  200.  
  201. Genlock:
  202. --------
  203. Lots of new genlock features were added to ECS DENISE and arecarried over
  204. to LISA. ZDBPEN in BPLCON2 allows any bitplane, selected by ZDBPSEL2,1,0,to
  205. be used as a transparency mask (ZD pin mirrors contents of selected
  206. bitplane). ZDCTEN disables the old COLOR00 is transparent mode, and allows
  207. the bit31 position of each color in the color table to control
  208. transparency.ZDCLKEN generates a 14MHz clock synchronized with the video
  209. data that can be used by video post-processors. Finally, BRDNTRAN in
  210. BPLCON3 generates an opaque border region which can be used to frame live
  211. video.
  212.  
  213. Color Lookup Table:
  214. -------------------
  215. The color table has grown from 32 13-bit registers to 256 25-bit registers.
  216. Several new register bits have been added to BPLCON3 to facilitate loading
  217. the table with only 32 register addresses. LOCT, selects either the 16 MSB
  218. or LSB for loading. Loading the MSB always loads the LSB as well for
  219. compatibility, so when 24 bit colors are desired load LSB after MSB.
  220. BANK2,1,0 of 8 32 address banks for loading as follows:
  221.  
  222.  BANK2 | BANK1 | BANK0 | COLOR ADDRESS RANGE
  223. --------------------------------------------
  224.    0   |   0   |   0   |  COLOR00 - COLOR1F 
  225.    0   |   0   |   1   |  COLOR20 - COLOR3F 
  226.    0   |   1   |   0   |  COLOR40 - COLOR5F 
  227.    0   |   1   |   1   |  COLOR60 - COLOR7F 
  228.    1   |   0   |   0   |  COLOR80 - COLOR9F 
  229.    1   |   0   |   1   |  COLORA0 - COLORBF 
  230.    1   |   1   |   0   |  COLORC0 - COLORDF 
  231.    1   |   1   |   1   |  COLORE0 - COLORFF 
  232.  
  233. RDRAM bit in BPLCON2 causes LISA to interpret all color table accesses as
  234. reads.
  235. Note: There is no longer any need to "scramble" SHRES color table entries. 
  236. This artifice is no longer required and pepole who bypass ECS graphics
  237. library calls to do their own 28MHz graphics are to be pointed at and
  238. publicly humiliated.
  239.  
  240. Collision
  241. ---------
  242. A new register CLXCON2 contains 4 new bits. ENBP7 and ENBP6 are the enable
  243. bits for bitplanes 7 and 8, respectively. Similarly, MVBP7 and MPBP8 are
  244. their match value bits. CLXDAT is unchanged.
  245.  
  246. Horizontal Comparators
  247. ----------------------
  248. All programmable comparators with the exception of VHPOSW have 35nSec
  249. resolution.: DIWHIGH,HBSTOP,SPRCTL,BPLCON1. BPLCON1 has additional
  250. high-order bits as well. Note that horizontal bit position representing
  251. 140nSec resolution has been changed to 3rd least significant bit,where
  252. before it used to be a field`s LSB, For example, bit 00 in BPLCON1 used to
  253. be named PF1H0 and now it`s called PF1H2.
  254.  
  255. Coercion of 15KHz to 31KHz:
  256. ---------------------------
  257. We have added new hardware features to LISA to aid in properly displaying
  258. 15KHz and 31KHz viewports together on the same 31KHz display. LISA can
  259. globally set sprite resolution to LORES,HIRES, or SHRES.
  260. LISA will ignore SH10 compare bits in SPRxPOS when scan-doubling, thereby
  261. allowing ALICE to use these bits individually set scan-doubling.
  262.  
  263. 3. LIST OF REGISTERS ORDERED BY ADDRESS
  264. ---------------------------------------
  265.  
  266. Symbols Used:
  267.  
  268. & = Register used by DMA channel only.
  269. % = Register used by DMA channel usually, processors sometimes.
  270. + = Address register pair. Low word uses DB1-DB15, High word DB0-DB4.
  271. ~ = Address not writable by the coprocessor unless COPCON bit 1 is set true
  272. h = new for HiRes chip set.
  273. p = new for IAA chip set.
  274. A = Agnus/Alice chip set.
  275. D = Denise/Lisa chip set.
  276. P = Paula chip.
  277. W = Write.
  278. R = Read.
  279. ER= Early read. This is a DMA transfer to RAM, from either the disk or from
  280.     the blitter. Ram timing requires data to be on the bus earlier than
  281.     microprocessor read cycles. These transfers are therefore initiated by
  282.     Agnus timing, rather than a read address on the register address bus
  283.     (RGA).
  284. S = Strobe (Write address with no register bits).
  285. PTL,PTH = 20 bit pointer that addresses DMA data. Must be reloaded by a
  286.     processor before use (Vertical blank for bit plane and sprite pointers.
  287.     and prior to starting the blitter for blitter pointers). (old chips -
  288.     18 bits).
  289. LCL,LCH = 20 bit location (starting address) of DMAdata. Used to
  290.     automatically restart pointers. such as the Coprocessor program counter
  291.     (during vertical blank), and the audio sample counter (whenever the 
  292.     audio lentgh count is finished), (Old chips - 18 bits).
  293. MOD = 15 bit Modulo. A number that is automatically added to the memory
  294.     address at the end of each line to generate the address for the
  295.     beginning of the next line. This allows the blitter (or the display
  296.     window) to operate on (or display) a window of data that is smaller
  297.     than the actual picture in memory. (memory map) Uses 15 bits, plus
  298.     sign extended.
  299.  
  300.  
  301. NAME        ADDR   R/W CHIP(s)   FUNCTION
  302. ---------------------------------------------------------------------------
  303. BPTDDAT   & ~000   ER  A         Blitter dest. early read (dummy address)
  304. DMACONR     ~002   R   A     P   Dma control (and blitter status) read
  305. VPOSR       ~004   R   A         Read vert most sig. bits (and frame flop
  306. VHPOSR      ~006   R   A         Read vert and horiz position of beam
  307. DSKDATR   & ~008   ER        P   Disk data early read (dummy address)
  308. JOY0DAT     ~00A   R      D      Joystick-mouse 0 data (vert,horiz)
  309. JOT1DAT     ~00C   R      D      Joystick-mouse 1 data (vert,horiz)
  310. CLXDAT      ~00E   R      D      Collision data reg. (read and clear)
  311. ADKCONR     ~010   R         P   Audio,disk control register read
  312. POT0DAT     ~012   R         P   Pot counter pair 0 data (vert,horiz)
  313. POT1DAT     ~014   R         P   Pot counter pair 1 data (vert,horiz)
  314. POTINP      ~016   R         P   Pot pin data read
  315. SERDATR     ~018   R         P   Serial port data and status read
  316. DSKBYTR     ~01A   R         P   Disk data byte and status read
  317. INTENAR     ~01C   R         P   Interrupt enable bits read
  318. INTREQR     ~01E   R         P   Interrupt request bits read
  319. DSKPTH    + ~020   W   A         Disk pointer (high 5 bits)
  320. DSKPTL    + ~022   W   A         Disk pointer (low 15 bits)
  321. DSKLEN      ~024   W         P   Disk lentgh
  322. DSKDAT    & ~026   W         P   Disk DMA data write
  323. REFPTR    & ~028   W   A         Refresh pointer
  324. VPOSW       ~02A   W   A         Write vert most sig. bits(and frame flop)
  325. VHPOSW      ~02C   W   A  D      Write vert and horiz pos of beam
  326. COPCON      ~-2E   W   A         Coprocessor control reg (CDANG)
  327. SERDAT      ~030   W         P   Serial port data and stop bits write
  328. SERPER      ~032   W         P   Serial port period and control
  329. POTGO       ~034   W         P   Pot count start,pot pin drive enable data
  330. JOYTEST     ~036   W      D      Write to all 4 joystick-mouse counters at
  331.                                  once
  332. STREQU    & ~038   S      D      Strobe for horiz sync with VB and EQU
  333. STRVBL    & ~03A   S      D      Strobe for horiz sync with VB (vert blank)
  334. STRHOR    & ~03C   S      D  P   Strobe for horiz sync
  335. STRLONG   & ~03E   S      D      Strobe for identification of long horiz
  336.                                  line
  337. BPLCON0     ~040   W  A          Blitter control reg 0
  338. BPLCON1     ~042   W  A          Blitter control reg 1
  339. BLTAFWM     ~044   W  A          Blitter first word mask for source A
  340. BLTALWM     ~046   W  A          Blitter last word mask for source A
  341. BLTCPTH   + ~048   W  A          Blitter pointer to source C (high 5 bits)
  342. BLTCPTL   + ~04A   W  A          Blitter pointer to source C (low 15 bits)
  343. BLTBPTH   + ~04C   W  A          Blitter pointer to source B (high 5 bits)
  344. BLTBPTL   + ~04E   W  A          Blitter pointer to source B (low 15 bits)
  345. BLTAPTH   + ~050   W  A          Blitter pointer to source A (high 5 bits)
  346. BLTAPTL   + ~052   W  A          Blitter pointer to source A (low 15 bits)
  347. BPTDPTH   + ~054   W  A          Blitter pointer to destn  D (high 5 bits)
  348. BLTDPTL   + ~056   W  A          Blitter pointer to destn  D (low 15 bits)
  349. BLTSIZE     ~058   W  A          Blitter start and size (win/width,height)
  350. BPTCONOL  h ~05A   W  A          Blitter control 0 lower 8 bits (minterms)
  351. BLTSIZV   h ~05C   W  A          Blitter V size (for 15 bit vert size)
  352. BLTSIZH   h ~05E   W  A          Blitter H size & start (for 11 bit H size)
  353. BLTCMOD     ~060   W  A          Blitter modulo for source C
  354. BLTBMOD     ~062   W  A          Blitter modulo for source B
  355. BLTAMOD     ~064   W  A          Blitter modulo for source A
  356. BLTDMOD     ~066   W  A          Blitter modulo for destn  D
  357.             ~068
  358.             ~06a
  359.             ~06c
  360.             ~06e
  361. BLTCDAT   & ~070   W  A          Blitter source C data reg
  362. BLTBDAT   & ~072   W  A          Blitter source B data reg
  363. BLTADAT   & ~074   W  A          Blitter source A data reg
  364.             ~076
  365. SPRHDAT   &h 078   W  A          Ext logic UHRES sprite pointer and data
  366.                                  identifier
  367. (BPLHDAT)   ~07A   ????          ?????
  368. LISAID    h ~07C   R     D       Chip revision level for Denise/Lisa
  369. DSKSYNC     ~07E   W         P   Disk sync pattern reg for disk read
  370. COP1LCH   +  080   W  A          Coprocessor first location reg
  371.                                  (high 5 bits)
  372. COP1LCL   +  082   W  A          Coprocessor first location reg
  373.                                  (low 15 bits)
  374. COP2LCH   +  084   W  A          Coprocessor second reg
  375.                                  (high 5 bits)
  376. COP2LCL   +  086   W  A          Coprocessor second reg
  377.                                  (low 15 bits)
  378. COPJMP1      088   S  A          Coprocessor restart at first location
  379. COPJMP2      08A   S  A          Coprocessor restart at second location
  380. COPINS       08C   W  A          Coprocessor inst fetch identify
  381. DIWSTRT      08E   W  A  D       Display window start
  382.                                  (upper left vert-hor pos)
  383. DIWSTOP      090   W  A  D       Display window stop
  384.                                  (lower right vert-hor pos)
  385. DDFSTRT      092   W  A          Display bit plane data fetch start.hor pos
  386. DDFSTOP      094   W  A          Display bit plane data fetch stop.hor pos
  387. DMACON       096   W  A      P   DMA control write (clear or set)
  388. CLXCON       098   W     D       Collision control
  389. INTENA       09A   W         P   Interrupt enable bits (clear or set bits)
  390. INTREQ       09C   W         P   Interrupt request bits (clear or set bits)
  391. ADKCON       09E   W         P   Audio,disk,UART,control
  392. AUD0LCH   +  0A0   W  A          Audio channel 0 location (high 5 bits)
  393. AUD0LCL   +  0A2   W  A          Audio channel 0 location (low 15 bits)
  394. AUD0LEN      0A4   W         P   Audio channel 0 lentgh
  395. AUD0PER      0A6   W         P   Audio channel 0 period
  396. AUD0VOL      0A8   W         P   Audio channel 0 volume
  397. AUD0DAT   &  0AA   W         P   Audio channel 0 data
  398.              0AC
  399.              0AE
  400. AUD1LCH   +  0B0   W  A          Audio channel 1 location (high 5 bits)
  401. AUD1LCL   +  0B2   W  A          Audio channel 1 location (low 15 bits)
  402. AUD1LEN      0B4   W         P   Audio channel 1 lentgh
  403. AUD1PER      0B6   W         P   Audio channel 1 period
  404. AUD1VOL      0B8   W         P   Audio channel 1 volume
  405. AUD1DAT   &  0BA   W         P   Audio channel 1 data
  406.              0BC
  407.              0BE
  408. AUD2LCH   +  0C0   W  A          Audio channel 2 location (high 5 bits)
  409. AUD2LCL   +  0C2   W  A          Audio channel 2 location (low 15 bits)
  410. AUD2LEN      0C4   W         P   Audio channel 2 lentgh
  411. AUD2PER      0C6   W         P   Audio channel 2 period
  412. AUD2VOL      0C8   W         P   Audio channel 2 volume
  413. AUD2DAT   &  0CA   W         P   Audio channel 2 data
  414.              0CC
  415.              0CE
  416. AUD3LCH   +  0D0   W  A          Audio channel 3 location (high 5 bits)
  417. AUD3LCL   +  0D2   W  A          Audio channel 3 location (low 15 bits)
  418. AUD3LEN      0D4   W         P   Audio channel 3 lentgh
  419. AUD3PER      0D6   W         P   Audio channel 3 period
  420. AUD3VOL      0D8   W         P   Audio channel 3 volume
  421. AUD3DAT   &  0DA   W         P   Audio channel 3 data
  422.              0DC
  423.              0DE
  424. BPL1PTH   +  0E0   W  A          Bit plane pointer 1 (high 5 bits)
  425. BPL1PTL   +  0E2   W  A          Bit plane pointer 1 (low 15 bits)
  426. BPL2PTH   +  0E4   W  A          Bit plane pointer 2 (high 5 bits)
  427. BPL2PTL   +  0E6   W  A          Bit plane pointer 2 (low 15 bits)
  428. BPL3PTH   +  0E8   W  A          Bit plane pointer 3 (high 5 bits)
  429. BPL3PTL   +  0EA   W  A          Bit plane pointer 3 (low 15 bits)
  430. BPL4PTH   +  0EC   W  A          Bit plane pointer 4 (high 5 bits)
  431. BPL4PTL   +  0EE   W  A          Bit plane pointer 4 (low 15 bits)
  432. BPL5PTH   +  0F0   W  A          Bit plane pointer 5 (high 5 bits)
  433. BPL5PTL   +  0F2   W  A          Bit plane pointer 5 (low 15 bits)
  434. BPL6PTH   +  0F4   W  A          Bit plane pointer 6 (high 5 bits)
  435. BPL6PTL   +  0F6   W  A          Bit plane pointer 6 (low 15 bits)
  436. BPL7PTH   +  0F8   W  A          Bit plane pointer 7 (high 5 bits)
  437. BPL7PTL   +  0FA   W  A          Bit plane pointer 7 (low 15 bits)
  438. BPL8PTH   +  0FC   W  A          Bit plane pointer 8 (high 5 bits)
  439. BPL8PTL   +  0FE   W  A          Bit plane pointer 8 (low 15 bits)
  440. BPLCON0      100   W  A  D       Bit plane control reg (misc control bits)
  441. BPLCON1      102   W     D       Bit plane control reg (scroll val PF1,PF2)
  442. BPLCON2      104   W     D       Bit plane control reg (priority control)
  443. BPLCON3      106   W     D       Bit plane control reg (enhanced features)
  444. BPL1MOD      108   W  A          Bit plane modulo (odd planes,or active-
  445.                                  fetch lines if bitplane scan-doubling is
  446.                                  enabled
  447. BPL2MOD      10A   W  A          Bit plane modulo (even planes or inactive-
  448.                                  fetch lines if bitplane scan-doubling is
  449.                                  enabled
  450. BPLCON4   p  10C   W     D       Bit plane control reg (bitplane and sprite
  451.                                  masks)
  452. CLXCON2   p  10e   W     D       Extended collision control reg
  453. BPL1DAT   &  110   W     D       Bit plane 1 data (parallel to serial con-
  454.                                  vert)
  455. BPL2DAT   &  112   W     D       Bit plane 2 data (parallel to serial con-
  456.                                  vert)
  457. BPL3DAT   &  114   W     D       Bit plane 3 data (parallel to serial con-
  458.                                  vert)
  459. BPL4DAT   &  116   W     D       Bit plane 4 data (parallel to serial con-
  460.                                  vert)
  461. BPL5DAT   &  118   W     D       Bit plane 5 data (parallel to serial con-
  462.                                  vert)
  463. BPL6DAT   &  11a   W     D       Bit plane 6 data (parallel to serial con-
  464.                                  vert)
  465. BPL7DAT   &p 11c   W     D       Bit plane 7 data (parallel to serial con-
  466.                                  vert)
  467. BPL8DAT   &p 11e   W     D       Bit plane 8 data (parallel to serial con-
  468.                                  vert)
  469. SPR0PTH   +  120   W  A          Sprite 0 pointer (high 5 bits)
  470. SPR0PTL   +  122   W  A          Sprite 0 pointer (low 15 bits)
  471. SPR1PTH   +  124   W  A          Sprite 1 pointer (high 5 bits)
  472. SPR1PTL   +  126   W  A          Sprite 1 pointer (low 15 bits)
  473. SPR2PTH   +  128   W  A          Sprite 2 pointer (high 5 bits)
  474. SPR2PTL   +  12A   W  A          Sprite 2 pointer (low 15 bits)
  475. SPR3PTH   +  12C   W  A          Sprite 3 pointer (high 5 bits)
  476. SPR3PTL   +  12E   W  A          Sprite 3 pointer (low 15 bits)
  477. SPR4PTH   +  130   W  A          Sprite 4 pointer (high 5 bits)
  478. SPR4PTL   +  132   W  A          Sprite 4 pointer (low 15 bits)
  479. SPR5PTH   +  134   W  A          Sprite 5 pointer (high 5 bits)
  480. SPR5PTL   +  136   W  A          Sprite 5 pointer (low 15 bits)
  481. SPR6PTH   +  138   W  A          Sprite 6 pointer (high 5 bits)
  482. SPR6PTL   +  13A   W  A          Sprite 6 pointer (low 15 bits)
  483. SPR7PTH   +  13C   W  A          Sprite 7 pointer (high 5 bits)
  484. SPR7PTL   +  13E   W  A          Sprite 7 pointer (low 15 bits)
  485. SPR0POS   %  140   W  A  D       Sprite 0 vert-horiz start pos data
  486. SPR0CTL   %  142   W  A  D       Sprite 0 position and control data
  487. SPR0DATA  %  144   W     D       Sprite 0 image data register A
  488. SPR0DATB  %  146   W     D       Sprite 0 image data register B
  489. SPR1POS   %  148   W  A  D       Sprite 1 vert-horiz start pos data
  490. SPR1CTL   %  14A   W  A  D       Sprite 1 position and control data
  491. SPR1DATA  %  14C   W     D       Sprite 1 image data register A
  492. SPR1DATB  %  14E   W     D       Sprite 1 image data register B
  493. SPR2POS   %  150   W  A  D       Sprite 2 vert-horiz start pos data
  494. SPR2CTL   %  152   W  A  D       Sprite 2 position and control data
  495. SPR2DATA  %  154   W     D       Sprite 2 image data register A
  496. SPR2DATB  %  156   W     D       Sprite 2 image data register B
  497. SPR3POS   %  158   W  A  D       Sprite 3 vert-horiz start pos data
  498. SPR3CTL   %  15A   W  A  D       Sprite 3 position and control data
  499. SPR3DATA  %  15C   W     D       Sprite 3 image data register A
  500. SPR3DATB  %  15E   W     D       Sprite 3 image data register B
  501. SPR4POS   %  160   W  A  D       Sprite 4 vert-horiz start pos data
  502. SPR4CTL   %  162   W  A  D       Sprite 4 position and control data
  503. SPR4DATA  %  164   W     D       Sprite 4 image data register A
  504. SPR4DATB  %  166   W     D       Sprite 4 image data register B
  505. SPR5POS   %  168   W  A  D       Sprite 5 vert-horiz start pos data
  506. SPR5CTL   %  16A   W  A  D       Sprite 5 position and control data
  507. SPR5DATA  %  16C   W     D       Sprite 5 image data register A
  508. SPR5DATB  %  16E   W     D       Sprite 5 image data register B
  509. SPR6POS   %  170   W  A  D       Sprite 6 vert-horiz start pos data
  510. SPR6CTL   %  172   W  A  D       Sprite 6 position and control data
  511. SPR6DATA  %  174   W     D       Sprite 6 image data register A
  512. SPR6DATB  %  176   W     D       Sprite 6 image data register B
  513. SPR7POS   %  178   W  A  D       Sprite 7 vert-horiz start pos data
  514. SPR7CTL   %  17A   W  A  D       Sprite 7 position and control data
  515. SPR7DATA  %  17C   W     D       Sprite 7 image data register A
  516. SPR7DATB  %  17E   W     D       Sprite 7 image data register B
  517. COLOR00      180   W     D       Color table 00
  518. COLOR01      182   W     D       Color table 01
  519. COLOR02      184   W     D       Color table 02
  520. COLOR03      186   W     D       Color table 03
  521. COLOR04      188   W     D       Color table 04
  522. COLOR05      18A   W     D       Color table 05
  523. COLOR06      18C   W     D       Color table 06
  524. COLOR07      18E   W     D       Color table 07
  525. COLOR08      190   W     D       Color table 08
  526. COLOR09      192   W     D       Color table 09
  527. COLOR10      194   W     D       Color table 10
  528. COLOR11      196   W     D       Color table 11
  529. COLOR12      198   W     D       Color table 12
  530. COLOR13      19A   W     D       Color table 13
  531. COLOR14      19C   W     D       Color table 14
  532. COLOR15      19E   W     D       Color table 15
  533. COLOR16      1A0   W     D       Color table 16
  534. COLOR17      1A2   W     D       Color table 17
  535. COLOR18      1A4   W     D       Color table 18
  536. COLOR19      1A6   W     D       Color table 19
  537. COLOR20      1A8   W     D       Color table 20
  538. COLOR21      1AA   W     D       Color table 21
  539. COLOR22      1AC   W     D       Color table 22
  540. COLOR23      1AE   W     D       Color table 23
  541. COLOR24      1B0   W     D       Color table 24
  542. COLOR25      1B2   W     D       Color table 25
  543. COLOR26      1B4   W     D       Color table 26
  544. COLOR27      1B6   W     D       Color table 27
  545. COLOR28      1B8   W     D       Color table 28
  546. COLOR29      1BA   W     D       Color table 29
  547. COLOR30      1BC   W     D       Color table 30
  548. COLOR31      1BE   W     D       Color table 31
  549. HTOTAL    h  1C0   W  A          Highest number count in horiz line
  550.                                  (VARBEAMEN = 1)
  551. HSSTOP    h  1C2   W  A          Horiz line pos for HSYNC stop
  552. HBSTRT    h  1C4   W  A  D       Horiz line pos for HBLANK start
  553. HBSTOP    h  1C6   W  A  D       Horiz line pos for HBLANK stop
  554. VTOTAL    h  1C8   W  A          Highest numbered vertical line
  555.                                  (VARBEAMEN = 1)
  556. VSSTOP    h  1CA   W  A          Vert line for VBLANK start
  557. VBSTRT    h  1CC   W  A          Vert line for VBLANK start
  558. VBSTOP    h  1CE   W  A          Vert line for VBLANK stop
  559. SPRHSTRT  h  1D0   W  A          UHRES sprite vertical start
  560. SPRHSTOP  h  1D2   W  A          UHRES sprite vertical stop
  561. BPLHSTRT  h  1D4   W  A          UHRES bit plane vertical stop
  562. BPLHSTOP  h  1D6   W  A          UHRES bit plane vertical stop
  563. HHPOSW    h  1D8   W  A          DUAL mode hires H beam counter write
  564. HHPOSR    h  1DA   R  A          DUAL mode hires H beam counter read
  565. BEAMCON0  h  1DC   W  A          Beam counter control register
  566.                                  (SHRES,UHRES,PAL)
  567. HSSTRT    h  1DE   W  A          Horizontal sync start (VARHSY)
  568. VSSTRT    h  1E0   W  A          Vertical sync start (VARVSY)
  569. HCENTER   h  1E2   W  A          Horizontal pos for vsync on interlace
  570. DIWHIGH   h  1E4   W  A  D       Display window upper bits for start/stop
  571. BPLHMOD   h  1E6   W  A          UHRES bit plane modulo
  572. SPRHPTH  +h  1E8   W  A          UHRES sprite pointer (high 5 bits)
  573. SPRHPTL  +h  1EA   W  A          UHRES sprite pointer (low 15 bits)
  574. BPLHPTH  +h  1EC   W  A          VRam (UHRES) bitplane pointer (hi 5 bits)
  575. BPLHPTL  +h  1EE   W  A          VRam (UHRES) bitplane pointer (lo 15 bits)
  576. RESERVED     1F0 - 1FA
  577. FMODE     p  1FC   W  A  D       Fetch mode register
  578. NO-OP(NULL)  1FE                 Can also indicate last 2 or 3 refresh 
  579.                                  cycles or the restart of the COPPER after
  580.                                  lockup.
  581.  
  582. 4. LIST OF REGISTERS ORDERED ALPHABETICALLY
  583. -------------------------------------------
  584. P  =  New register in Pandora chip set
  585. p  =  Stuff added or changed in hires chips
  586. H  =  New register in hires chips
  587. h  =  stuff added or changed in hires chips
  588.  
  589. A  =  Agnus/Alice chip
  590. D  =  Denise/Lisa chip
  591. P  =  Paula chip
  592.  
  593. W  =  Write
  594. R  =  Read
  595. ER =  Early read. This is a DMA data transfer to RAM, from either the disk
  596.       or from the blitter, Ram timing requires data to be on the bus
  597.       earlier than microprocessor read cycles. These transfers are
  598.       therefore initiated by Agnus timing, rather than a read address on
  599.       the register address bus (RGA).
  600.  
  601. NAME   rev ADDR type chip Description
  602. ---------------------------------------------------------------------------
  603. ADKCON     09E   W   P    Audio,Disk,Uart,Control write
  604. ADKCONR    010   R   P    Audio,Disk,Uart,Control read
  605.  
  606.                  BITS  USE
  607.                  ----  ----------------------------------------------------
  608.                  15    SET/CLEAR  Set/clear control bit.determines if bits
  609.                                   written with a 1 get set or cleared.bits
  610.                                   written with a zero are always unchanged.
  611.                  14-13 PRECOMP 1-0   CODE   PRECOMP VALUE
  612.                                      ----   -------------
  613.                                       00    none
  614.                                       01    140 ns
  615.                                       10    280 ns
  616.                                       11    560 ns
  617.                  12    MFMPREC    (1 = MFM precomp / 0 = GCR precomp)
  618.                  11    UARTBRK    Forces a UART break (clears TXD) if true
  619.                  10    WORDSYNC   Enables disk read synchronizing on a word
  620.                                   equal to DISK SYNC CODE, Located in
  621.                                   address DSKSYNC (7E).
  622.                  09    MSBSYNC    Enables disk read synchrinizing on the                                   MSB (most signif bit) appl type GCR
  623.                  08    FAST       Disk data clock rate control 1=fast(2us)
  624.                                   0=slow(4us)
  625.                                   (Fast for MFM or 2us,slow for 4us GCR)
  626.                  07    USE3PN     Use audio channel 3 to modulate nothing
  627.                  06    USE2P3     Use audio channel 2 to modulate period of
  628.                                    channel 3
  629.                  05    USE1P2     Use audio channel 1 to modulate period
  630.                                   of channel 2
  631.                  04    USE0P1     Use audio channel 0 to modulate period
  632.                                   of channel 1
  633.                  03    USE3VN     Use audio channel 3 to modulate nothing                  02    USE2V3     Use audio channel 2 to modulate volume
  634.                                   of channel 3
  635.                  01    USE1V2     Use audio channel 1 to modulate volume
  636.                                   of channel 2
  637.                  00    USE0V1     Use audio channel 0 to modulate volume
  638.                                   of channel 1
  639.                  NOTE: If both period and volume aremodulated on the same
  640.                        channel,the period and volume will be alternated.
  641.                        first AUDxDAT word is used for V6-V0 of UDxVOL.
  642.                        second AUDxDAT word is used for P15-P0 of AUDxPER.
  643.                        This alternating sequence is repeated.
  644.  
  645. AUDxLCH h 0A0    W   A            Audio channel x location (high 5 bits)
  646.                                   (old-3 bits)
  647.  
  648. AUDxLCL   0A2    W   A            Audio channel x location (low 15 bits)
  649.                        This pair of registers contains the 20 bit starting
  650.                        address(location) of audio channel x (x=0,1,2,3)DMA
  651.                        data. This is not a pointer reg and therfore only
  652.                        needs to be reloaded if a diffrent memory location
  653.                        is to be outputted.
  654.  
  655. AUDxLEN   0A4    W   P            Audio channel x lentgh
  656.                        This reg contains the lentgh (number of words) of
  657.                        audio channel x DMA data.
  658.  
  659. AUDxPER h 0A6    W   P            Audio channel x period
  660.                        This reg contains the period (rate) of audio channel
  661.                        x DMA data transfer.
  662.                        The minimum period is 124 clocks. This means that
  663.                        the smallest number that should be placed in this
  664.                        reg is 124.
  665.  
  666. AUDxVOL   0A8    W   P            Audio channel x volume
  667.                        This reg contains the volume setting for audio
  668.                        channel x. Bits 6,5,4,3,2,1,0 specify 65 linear
  669.                        volume levels as shown below.
  670.  
  671.                  BITS    USE
  672.                  ----    --------------------------------------------------
  673.                  -15-07  Not used
  674.                  06      Forces volume to max (64 ones,no zeros)
  675.                  05-00   Sets one of the 64 levels (000000 = no output
  676.                          (111111 = 63 ones, one zero)
  677.  
  678. AUDxDAT   0AA    W   P            Audio channel x data
  679.                          This reg is the audio channel x (x=0,1,2,3) DMA
  680.                          data buffer. It contains 2 bytes of data (each
  681.                          byte is a twos complement signed integer) that
  682.                          are outputed sequentially (with digital to analog
  683.                          conversion)to the audio output pins. With maximum
  684.                          volume, each byte can drive the audio outputs
  685.                          with 0.8 volts(peak to peak,typ). The audio DMA
  686.                          channel controller automatically transfers data
  687.                          to this reg from RAM. The processor can also
  688.                          write directly to this reg. When the DMA data is
  689.                          finished (words outputted=lentgh)and the data in
  690.                          this reg has been used, an audio channel interrupt
  691.                          request is set.
  692.  
  693. BEAMCON0 h 1DC  W    A            Beam counter control bits
  694.  
  695.                  BIT     FUNCTION
  696.                  ---     --------------------------------------------------
  697.                  15      (unused)
  698.                  14      HARDDIS
  699.                  13      LPENDIS
  700.                  12      VARVBEN
  701.                  11      LOLDIS
  702.                  10      CSCBEN
  703.                   9      VARVSYEN
  704.                   8      VARHSYEN
  705.                   7      VARBEAMEN
  706.                   6      DUAL
  707.                   5      PAL
  708.                   4      VARCSYEN
  709.                   3      (unused, formerly BLANKEN)
  710.                   2      CSYTRUE
  711.                   1      VSYTRUE
  712.                   0      HSYTRUE
  713.  
  714. HARDDIS = This bit is used to disable the hardwire vertical horizontal
  715.           window limits. It is cleared upon reset.
  716.  
  717. LPENDIS = When this bit is a low and LPE (BPLCON0,BIT 3) is enabled, the
  718.           light-pen latched value(beam hit position) will be read by
  719.           VHPOSR,VPOSR and HHPOSR. When the bit is a high the light-pen
  720.           latched value is ignored and the actual beam counter position is           read by  VHPOSR,VPOSR, and HHPOSR.
  721.  
  722. VARVBEN = Use the comparator generated vertical blank (from VBSTRT,VBSTOP)           to run the internal chip stuff-sending RGA signals to Denise,           starting sprites,resetting light pen. It also disables the hard
  723.           stop on the vertical display window.
  724.  
  725. LOLDIS  = Disable long line/short toggle. This is useful for DUAL mode
  726.           where even multiples are wanted, or in any single display
  727.           where this toggling is not desired.
  728.  
  729. CSCBEN  = The variable composite sync comes out on the HSY pin, and the
  730.           variable conosite blank comes out on the VSY pin. The idea is
  731.           to allow all the information to come out of the chip for a
  732.           DUAL mode display. The normal monitor uses the normal composite
  733.           sync, and the variable composite sync &blank come out the HSY &
  734.           VSY pins. The bits VARVSTEN & VARHSYEN (below) have priority over
  735.           this control bit.
  736.  
  737. VARVSYEN= Comparator VSY -> VSY pin. The variable VSY is set vertically on
  738.           VSSTRT, reset vertically on VSSTOP, with the horizontal position
  739.           for set set & reset HSSTRT on short fields (all fields are short
  740.           if LACE = 0) and HCENTER on long fields (every other field if
  741.           LACE = 1).
  742.  
  743. VARHSYEN= Comparator HSY -> HSY pin. Set on HSSTRT value, reset on HSSTOP
  744.           value.
  745.  
  746. VARBEAMEN=Enables the variable beam counter comparators to operate 
  747.           (allowing diffrent beam counter total values) on the main horiz 
  748.           counter. It also disables hard display stops on both horizontal
  749.           and vertical.
  750.  
  751. DUAL    = Run the horizontal comparators with the alternate horizontal beam
  752.           counter, and starts the UHRES pointer chain with the reset of
  753.           this counter rather than the normal one. This allows the UHRES 
  754.           pointers to come out more than once in a horizontal line,
  755.           assuming there is some memory bandwidth left (it doesn`t work in
  756.           640*400*4 interlace mode) also, to keep the two displays synced,
  757.           the horizontal line lentghs should be multiples of each other.
  758.           If you are amazingly clever, you might not need to do this.
  759.  
  760. PAL     = Set appropriate decodes (in normal mode) for PAL. In variable
  761.           beam counter mode this bit disables the long line/short line
  762.           toggle- ends up short line.
  763.  
  764. VARCSYEN= Enables CSY from the variable decoders to come out the CSY
  765.           (VARCSY is set on HSSTRT match always, and also on HCENTER
  766.           match when in vertical sync. It is reset on HSSTOP match when VSY
  767.           and on both HBSTRT &HBSTOP matches during VSY. A reasonable
  768.           composite can be generated by setting HCENTER half a horiz line
  769.           from HSSTRT, and HBSTOP at (HSSTOP-HSSTRT) before HCENTER, with
  770.           HBSTRT at (HSSTOP-HSSTRT) before .... see below 
  771.  
  772. ---------------------------------------------------------------------------
  773.                       PAGE 19 MISSING (SORRY!)
  774. ---------------------------------------------------------------------------
  775. BLTCON0    040  W   A           Blitter control register 0
  776. BLTCON0L H 05A  W   A           Blitter control register 0 (lower 8 bits)
  777.                          This is to speed up software - the upper bits are
  778.                          often the same.
  779.  
  780. BLTCON1  h 042  W   A           Blitter control register 1
  781.                          These two control registers are used together to
  782.                          control blitter operations. There are 2 basic
  783.                          modes, area and line, which are selected by bit 0
  784.                          of BLTCON1, as shown below.
  785.  
  786.                          AREA MODE ("normal")     LINE MODE (line draw)
  787.                          --------------------------------------------------
  788.                          BIT#  BLTCON0  BLTCON1    BIT#  BLTCON0  BLTCON1
  789.                          --------------------------------------------------
  790.                          15    ASH3     BSH3       15    ASH3     BSH3
  791.                          14    ASH2     BSH2       14    ASH2     BSH2
  792.                          13    ASH1     BSH1       13    ASH1     BSH1
  793.                          12    ASA0     BSH0       12    ASH0     BSH0
  794.                          11    USEA      0         11     1         0
  795.                          10    USEB      0         10     0         0
  796.                          09    USEC      0         09     1         0
  797.                          08    USED      0         08     1         0
  798.                          07    LF7      DOFF       07    LF7       DPFF
  799.                          06    LF6       0         06    LF6       SIGN
  800.                          05    LF5       0         05    LF5       OVF
  801.                          04    LF4      EFE        04    LF4       SUD
  802.                          03    LF3      IFE        03    LF3       SUL
  803.                          02    LF2      FCI        02    LF2       AUL
  804.                          01    LF1      DESC       01    LF1       SING
  805.                          00    LF0      LINE(=0)   00    LF0       LINE(=1)
  806.  
  807.                          ASH3-0    Shift value of A source
  808.                          BSH3-0    Shift value of B source and line texture
  809.                          USEA      Mode control bit to use source A
  810.                          USEB      Mode control bit to use source B
  811.                          USEC      Mode control bit to use source C
  812.                          USED      Mode control bit to use destination D
  813.                          LF7-0     Logic function minterm select lines
  814.                          EFE       Exclusive fill enable
  815.                          IFE       Inclusive fill enable
  816.                          FCI       Fill carry input
  817.                          DESC      Descending (dec address)control bit
  818.                          LINE      Line mode control bit
  819.                          SIGN      Line draw sign flag
  820.                          OVF       Line/draw r/l word overflow flag
  821.                          SUD       Line draw, Sometimes up or down (=AUD)
  822.                          SUL       Line draw, Sometimes up or left
  823.                          AUL       Line draw, Always up or left
  824.                          SING      line draw, Single bit per horiz line
  825.                          DOFF      Disables the D output- for external ALUs
  826.                                    The cycle occurs normally, but the data
  827.                                    bus is tristate (hires chips only)
  828.                          
  829. BLTSIZH  h 05E  W   A           Blitter H size & start (11 bit width)
  830.  
  831.                     BIT# 15 14 13 12 11 10  09 08 07 06 05 04 03 02 01 00
  832.                           x  x  x  x  x w10 w9 w8 w7 w6 w5 w4 w3 w2 w1 w0
  833.  
  834. BLTSIZV  h 05C  W   A           Blitter V size (15 bit height)
  835.                      
  836.                     BIT# 15 14  13  12  11  10  09 08 07 06 05 04 03 02 01 00
  837.                           x h14 h13 h12 h11 h10 h9 h8 h7 h6 h5 h4 h3 h2 h1 h0
  838.                          
  839.                          These are the blitter size regs for blits larger than 
  840.                          the earlier chips could accept. The original commands
  841.                          are retained for compatibility. BLTSIZV should be 
  842.                          written first, followed by BLTSIZH, which starts the
  843.                          blitter. BLTSIZV need not be rewritten for subsequent
  844.                          bits if the vertical size is the same.
  845.                          Max size of blit 32k pixels * 32k lines, x s should be 
  846.                          written to 0 for upward compatibility.
  847.                          
  848. BPLHDAT  h 07A  W               Ext logic UHRES bit plane identifier
  849. BPLHMOD  h 1E6  W   A           Uhres bit plane modulo
  850.  
  851.                       This is the number (sign extended) that is added to the
  852.                       UHRES bit plane pointer (BPLHPTL,H) every line, and
  853.                       then another 2 is added, just like the other modulos.
  854.  
  855. BPLHPTH  h 1EC  W   A           UHRES (VRAM) bit plane pntr (high 5 bits)
  856. BPLHPTL  h 1EE  W   A           UHRES (VRAM) bit plane pntr (low 15 bits)
  857.  
  858.                       When UHRES is enabled, this pointer comes out on the
  859.                       2nd 'free' cycle after the start of each horizontal
  860.                       line. It`s modulo is added every time it comes out.
  861.                       'free' means priority above the copper and below the
  862.                       fixed stuff (audio,sprites....).
  863.                       BPLHDAT comes out as an identifier on the RGA lines when
  864.                       the pointer address is valid so that external detectors
  865.                       can use this to do the special cycle for the VRAMs, The
  866.                       SHRHDAT gets the first and third free cycles.
  867.                          
  868. BPLHSTOP p 1D6  W   A           UHRES bit plane vertical stop
  869.  
  870.                          BIT#   name
  871.                          ----   ----
  872.                          15     BPLHWRM 
  873.                          14-11  Unused
  874.                          10-0   V10-V0
  875.                          
  876.                       BPLHWRM = Swaps the polarity of ARW* when the BPLHDAT
  877.                       comes out so that external devices can detect the RGA
  878.                       and put things into memory (ECS and later versions).
  879.                          
  880. BPLHSTRT h 1D4  W   A           UHRES bit plane vertical stop
  881.  
  882.                       This controls the line when the data fetch starts for
  883.                       the BPLHPTH,L pointers. V10-V0 on DB10-0.
  884.                          
  885. BPLxPTH   0E0   W   A           Bit plane x pointer (high 5 bits)
  886.  
  887.           0E8            x=1,2,3,4,5,6,7,8
  888.           0EC
  889.           0F0
  890.           0F4
  891.         p 0F8
  892.         p 0FC
  893.        
  894. BPLxPTL   0E2  W    A           Bit plane pointer (low 15 bits)
  895.  
  896.           0EA          Address of bit plane x  (x=1,2,3,4,5,6,7,8) DMA data.
  897.           0EE          This pointer must be reinitialized by the processor or
  898.           0F2          coprocessor to point to the beginning of bit plane data
  899.           0F6          every vertical blank time.
  900.         p 0FA
  901.         p 0FE        
  902.                                                                         
  903. BPLxDAT   110  W    A           Bit plane x data (parallel to serial convert)
  904.  
  905.           112          These regs recieve the DMA data fetched from RAM by the
  906.           114          bit plane address pointers described above.
  907.           116          They may also be rewritten by either micro.
  908.           118          they act as a 8 word parallel to serial buffer for up 
  909.           11A          to 8 memory 'bit planes'. x=1-8 the parallel to serial
  910.         p 11C          conversion id triggered whenever bit plane #1 is
  911.         p 11E          written, indicing the completion of all bit planes for
  912.                        that word (16/32/64 pixels). The MSB is output first,
  913.                        and is therefore always on the left.
  914.                          
  915. BPL1MOD   108  W    A           Bit plane modulo (odd planes)
  916. BPL2MOD   10A  W    A           BIt plane modulo (even planes)
  917.  
  918.                        These registers contain the modulos for the odd and
  919.                        even bit planes. A modulo is a number that is automa-
  920.                        itcally added to the address at the end of each line,
  921.                        in order that the address then points to the start of
  922.                        the next line. Since they have seperate modulos, the
  923.                        odd and even bit planes may have sizes that are
  924.                        different from each other, as well as different from
  925.                        the display window size.
  926.                        If scan-doubling is enabled, BPL1MOD serves as the
  927.                        primary bitplane modulos and BPL2MOD serves as the
  928.                        alternate. Lines whose LSBs of beam counter and DIWSTRT
  929.                        match are designated primary, whereas lines whose LSBs
  930.                        don`t match are designated alternate.
  931.                          
  932. BPLCON0 p 100  W    A  D        Bit plane control reg. (misc, control bits)                         
  933. BPLCON1 p 102  W       D        Bit plane control reg. (horiz, scroll counter)                         
  934. BPLCON2 p 104  W       D        Bit plane control reg. (new control bits)                         
  935. BPLCON3 p 106  W       D        Bit plane control reg. (enhanced features)                         
  936. BPLCON4 p 10c  W       D        Bit plane control reg. (display masks)                         
  937.                           
  938.                       These regs control the operation of the bit planes and
  939.                       various aspects of the display.
  940.                          
  941.                       BIT#   BPLCON0   BPLCON1   BPLCON2   BPLCON3    BPLCON4
  942.                       ----   -------   -------   -------   -------    -------
  943.                       15     HIRES     PF2H7=0   X         BANK2=0    BPLAM7=0 
  944.                       14     BPU2      PF2H6=0   ZDBPSEL2  BANK1=0    BPLAM6=0
  945.                       13     BPU1      PF2H1=0   ZDBPSEL1  BANK0=0    BPLAM5=0
  946.                       12     BPU0      PF2H0=0   ZDBPSEL0  PF2OF2=0   BPLAM4=0
  947.                       11     HAM       PF1H7=0   ZDBPEN    PF2OF1=1   BPLAM3=0
  948.                       10     DPF       PF1H6=0   ZDCTEN    PF2OF0=1   BPLAM2=0
  949.                       09     COLOR     PF1H1=0   KILLEHB   LOCT=0     BPLAM1=0
  950.                       08     GAUD      PF1H0=0   RDRAM=0   X          BPLAM0=0
  951.                       07     UHRES     PF2H5     SOGEN=0   SPRES1=0   ESPRM7=0
  952.                       06     SHRES     PF2H4     PF2PRI    SPRES0=0   ESPRM6=0
  953.                       05     BYPASS=0  PF2H3     PF2P2     BRDRBLNK=0 ESPRM5=0
  954.                       04     BPU3=0    PF2H2     PF2P1     BRDNTRAN=0 ESPRM4=1
  955.                       03     LPEN      PF1H5     PF2P0     X          OSPRM7=0
  956.                       02     LACE      PF1H4     PF1P2     ZDCLKEN=0  OSPRM6=0
  957.                       01     ERSY      PF1H3     PF1P1     BRDSPRT=0  OSPRM5=0
  958.                       00     ECSENA=0  PF1H2     PF1P0     EXTBLKEN=0 OSPRM4=1
  959.                                      
  960.           x = don`t care; but drive to 0 for upward compatibility!
  961.                            
  962.           HIRES = High resoloution (640*200/640*400 interlace) mode
  963.           
  964.           BPUx  = Bit plane use code 0000-10000 (NONE thru 8 inclusive)
  965.           
  966.           HAM   = Hold and modify mode, now using either 6 or 8 bit planes.
  967.           
  968.           New HAM mode is invoked when this bit is set and BPU = 1000.
  969.           
  970.           DPF   = Double playfield (PFI=odd FP2= even bit planes)
  971.           now available in all resoloutions.
  972.           (If BPU=6 and HAM=0 and DPF=0 a special mode is defined that allows
  973.           bitplane 6 to cause an intensity reduction of the other 5 bitplanes
  974.           The color register output selected by 5 bitplanes is shifted to half
  975.           intensity  by the 6th bit plane. This is called EXTRA-HALFBRITE
  976.           Mode.
  977.           
  978.           COLOR = Enables color burst output signal
  979.           
  980.           GAUD  = Genlock audio enable. This level appears on the ZD pin
  981.           on denise during all blanking periods, unless ZDCLK bit is set
  982.           
  983.           UHRES = Ultrahi res enables the UHRES pointers (for 1k*1k) (also
  984.           needs bits in DMACON (hires chips only).
  985.           Disables hard stops for vert, horiz display windows
  986.           
  987.           SHRES = Super hi-res mode (35ns pixel width)
  988.           
  989.           BYPASS = Bitplanes are scrolled and prioritized normally, but
  990.           bypass color table and 8 bit wide data appear on R(7:0).
  991.           
  992.           LPEN = Light pen enable (reset on power up)
  993.           
  994.           LACE = Interlace enable (reset om power up)
  995.           
  996.           ERSY = External resync (HSYNC, VSYNC pads become inputs)
  997.           (reset on power up)
  998.           
  999.           ECSENA = When low (default), the following bits in BPLCON3 are
  1000.           disabled: BRDRBLNK,BRDNTRAN,ZDCLKEN,BRDSPRT, and EXTBLKEN.
  1001.           These 5 bits can always be set by writing to BPLCON3, however
  1002.           there effects are inhibited until ECSENA goes high. This allows
  1003.           rapid context switching between pre-ECS viewports and new ones.
  1004.           
  1005.           PF2Hx = Playfield 2 horizontal scroll code, x=0-7
  1006.           
  1007.           PF1Hx = Playfield 1 horizontal scroll code, x=0-7 
  1008.           where PFyH0=LSB=35ns SHRES pixel (bits have been renamed, old
  1009.           PFyH0 now PFyH2, ect). Now that the scroll range has been 
  1010.           quadrupled to allow for wider (32 or 64 bits) bitplanes.
  1011.           
  1012.           ZDBPSELx =3 bit field which selects which bitplane is to be used
  1013.           for ZD when ZDBBPEN is set;000 selects BB1 and 111 selects BP8.
  1014.                    
  1015.           ZDBPEN = Causes ZD pin to mirror bitplane selected by ZDBPSELx
  1016.           bits. This does not disable the ZD mode defined by ZDCTEN, but
  1017.           rather is "ored" with it.
  1018.           
  1019.           ZDCTEN = Causes ZD pin to mirror bit #15 of the active entry in
  1020.           high color table. When ZDCTEN is reset ZD reverts to mirroring
  1021.           color (0).
  1022.           
  1023.           KILLEHB = Disables extra half brite mode.
  1024.           
  1025.           RDRAM = Causes color table address to read the color table instead
  1026.           of writing to it.
  1027.           
  1028.           SOGEN = When set causes SOG output pin to go high
  1029.           
  1030.           PF2PRI = Gives playfield 2 priority over playfield 1.
  1031.           
  1032.           PF2Px = Playfield 2 priority code (with resp. to sprites).
  1033.           
  1034.           PF1Px = Playfield 1 priority code (with resp. to sprites). 
  1035.           
  1036.           BANKx = Selects one of eight color banks, x=0-2.
  1037.           
  1038.           PF20Fx = Determine bit plane color table offset whe playfield 2
  1039.           has priority in dual playfield mode:
  1040.           
  1041.           PF20F || AFFECTED BITPLANE ||OFFSET
  1042.           -------------------------------------------------------
  1043.           | 2 | 1 | 0 || 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 ||(decimal
  1044.           -------------------------------------------------------
  1045.           | 0 | 0 | 0 || - | - | - | - | - | - | - | - || none 
  1046.           | 0 | 0 | 1 || - | - | - | - | - | - | 1 | - || 2
  1047.           | 0 | 1 | 0 || - | - | - | - | - | 1 | - | - || 4 
  1048.           | 0 | 1 | 1 || - | - | - | - | - | 1 | - | - || 8 (default)    
  1049.           | 1 | 0 | 0 || - | - | - | 1 | - | - | - | - || 16   
  1050.           | 1 | 0 | 1 || - | - | 1 | - | - | - | - | - || 32 
  1051.           | 1 | 1 | 0 || - | 1 | - | - | - | - | - | - || 64  
  1052.           | 1 | 1 | 1 || 1 | - | - | - | - | - | - | - || 128
  1053.           
  1054.           LOCT = Dictates that subsequent color palette values will be
  1055.           written to a second 12- bit color palette, constituting the
  1056.           RGB low minus order bits. Writes to the normal hi monus order
  1057.           color palette automattically copied to the low order for back-
  1058.           wards compatibility.
  1059.           
  1060.           SPRESx = Determine resolution of all 8 sprites (x=0,1);
  1061.  
  1062.           -------------------------------------------------------------
  1063.           SPRES1 | SPRES0 | SPRITE RESOLUTION
  1064.           -------------------------------------------------------------
  1065.           0      | 0      | ECS defaults (LORES,HIRES=140ns,SHRES=70ns)
  1066.           0      | 1      | LORES (140ns)
  1067.           1      | 0      | HIRES (70ns)
  1068.           1      | 1      | SHRES (35ns)
  1069.           
  1070.           BRDRBLNK = "Border area" is blanked instead of color (0).
  1071.           Disabled when ECSENA low.
  1072.           
  1073.           BRDNTRAN = "Border area" is non minus transparant (ZD pin is low
  1074.           when border is displayed).
  1075.           Disabled when ECSENA low.
  1076.           
  1077.           ZDCLKEN = ZD pin outputs a 14MHz clock whose falling edge coincides
  1078.           with hires (7MHz) video data. this bit when set disables all other
  1079.           ZD functions.
  1080.           Disabled when ESCENA low.
  1081.            
  1082.           BRDRSPRT = enables sprites outside the display window.
  1083.           disabled when ESCENA low.
  1084.           
  1085.           EXTBLKEN = causes BLANK output to be programmable instead of
  1086.           reflecting internal fixed decodes.
  1087.           disabled when ESCENA low.
  1088.           
  1089.           BPLAMx = This 8 bit field is XOR`ed with the 8 bit plane color
  1090.           address, thereby altering the color address sent to the color
  1091.           table (x=1-8)
  1092.           
  1093.           ESPRMx = 4 Bit field provides the 4 high order color table address
  1094.           bits for even sprites: SPR0,SPR2,SPR4,SPR6. Default value is 0001
  1095.           binary. (x=7-4)
  1096.           
  1097.          OSPRMx = 4 Bit field provides the 4 high order color table address
  1098.          bits for odd sprites: SPR1,SPR3,SPR5,SPR7. Default value is 0001
  1099.          binary. (x=7-4)
  1100.          
  1101. CLXCON    098  W   A            Collision control
  1102.  
  1103.                       This register controls which bitplanes are included 
  1104.                       (enabled) in collision detection, and thier required
  1105.                       state if included. It also controls the individual
  1106.                       inclusion of odd numbered sprites in the collision
  1107.                       detection, by logically ORing them with thier
  1108.                       correspondingeven numbered sprite. Writing to this
  1109.                       register resets thebits in CLXCON2.
  1110.                          
  1111.                 BIT# FUNCTION DESCRIPTION
  1112.                 ---- -------- -----------
  1113.                 15   ENSP7    Enable Sprite 7 (ORed with Sprite 6)
  1114.                 14   ENSP5    Enable Sprite 5 (ORed with Sprite 4)
  1115.                 13   ENSP3    Enable Sprite 3 (ORed with Sprite2)
  1116.                 12   ENSP1    Enable Sprite 1 (ORed with Sprite 0)
  1117.                 11   ENSP6    Enable bit plane 6 (match reqd. for collision
  1118.                 10   ENSP5    Enable bit plane 5 (match reqd. for collision                    09   ENSP4    Enable bit plane 4 (match reqd. for collision
  1119.                 08   ENSP3    Enable bit plane 3 (match reqd. for collision
  1120.                 07   ENSP2    Enable bit plane 2 (match reqd. for collision
  1121.                 06   ENSP1    Enable bit plane 1 (match reqd. for collision
  1122.                 05   ENSP6    Match value for bit plane 6 collision
  1123.                 04   ENSP5    Match value for bit plane 5 collision
  1124.                 03   ENSP4    Match value for bit plane 4 collision
  1125.                 02   ENSP3    Match value for bit plane 3 collision
  1126.                 01   ENSP2    Match value for bit plane 2 collision
  1127.                 00   ENSP1    Match value for bit plane 1 collision
  1128.                        
  1129. CLXCON2 P  10C  W    D          Extended collision control
  1130.  
  1131.                        This reg controls when bit planes 7 and 8 are included
  1132.                        in collision detection, and there required state if 
  1133.                        included. Contents of this register are reset by a
  1134.                        write to CLXCON.
  1135.                        BITS INITIALIZED BY RESET
  1136.                          
  1137.                          BIT#  FUNCTION DESCRIPTION
  1138.                          ----  -------- -----------
  1139.                          15-08          unused
  1140.                          07    ENBP8    Enable bit plane 8 (match reqd. for
  1141.                                         collision)
  1142.                          06    ENBP7    Enable bit plane 7 (match reqd. for 
  1143.                                         collision)
  1144.                          05-02          unused
  1145.                          01    MVBP8    Match value for bit plane 8 collision
  1146.                          00    MVBP7    Match value for bit plane 7 collision
  1147.                          
  1148.                          note: Disable bit planes cannot prevent collisions.
  1149.                          Therefore if all bitplanes are disabled, collision
  1150.                          will be continuous, regardless of the match values.
  1151.                          
  1152. CLXDAT   00E  R     D           Collision data reg. (read and clear)
  1153.  
  1154.                          This address reads (and clears) the collision
  1155.                          detection reg. the bit assignments are below
  1156.                   NOTE: Playfield 1 is all odd numbered enabled bit planes.
  1157.                         Playfield 2 is all even numbred enabled bit planes.
  1158.                           
  1159.                          BIT#   COLLISIONS REGISTERED
  1160.                          ----   --------------------- 
  1161.                          15     not used
  1162.                          14     Sprite 4 (or 5) to Sprite 6 (or 7)
  1163.                          13     Sprite 2 (or 3) to Sprite 6 (or 7)
  1164.                          12     Sprite 2 (or 3) to Sprite 4 (or 5)
  1165.                          11     Sprite 0 (or 1) to Sprite 6 (or 7)
  1166.                          10     Sprite 0 (or 1) to Sprite 4 (or 5)
  1167.                          09     Sprite 0 (or 1) to Sprite 2 (or 3)
  1168.                          08     Playfield 2 to Sprite 6 (or 7)
  1169.                          07     Playfield 2 to Sprite 4 (or 5)
  1170.                          06     Playfield 2 to Sprite 2 (or 3)
  1171.                          05     Playfield 2 to Sprite 0 (or 1)
  1172.                          04     Playfield 1 to Sprite 6 (or 7)
  1173.                          03     Playfield 1 to Sprite 4 (or 5)
  1174.                          02     Playfield 1 to Sprite 2 (or 3)
  1175.                          01     Playfield 1 to Sprite 0 (or 1)
  1176.                          00     Playfield 2 to Playfield 2
  1177.                          
  1178. COLORxx  180-1BE  W             COLOR table xx
  1179.  
  1180.                        There 32 of these registers (xx=00-31) and together
  1181.                        with the banking bits they address the 256 locations in
  1182.                        the color palette.
  1183.                        There are actually two sets of color regs, selection of
  1184.                        which is controlled by the LOCT reg bit. When LOCT = 0
  1185.                        the 4 MSB of red, green and blue video data are
  1186.                        selected along with the T bit for genlocks the low
  1187.                        order set of registers is also selected as well, so
  1188.                        that the 4 bi valuesare automatically extended to 8
  1189.                        bits.This provides compatibility with old software. If
  1190.                        the full range of palette values are desired, then LOCT
  1191.                        can be set high and independant values for the 4 LSB of
  1192.                        red, green  and blue can be written. The low order
  1193.                        color registers do not contain a transparency (T) bit.
  1194.                        The table below shows the color register bit usage.
  1195.                          
  1196.       BIT#    15,14,13,12    11,10,09,08    07,06,05,04    03,02,01,00
  1197.       ----    -----------    -----------    -----------    -----------
  1198.       LOCT=0  T  X  X  X     R7 R6 R5 R4    G7 G6 G5 G4    B7 B6 B5 B4
  1199.       LOCT=1  X  X  X  X     R3 R2 R1 R0    G3 G2 G1 G0    B3 B2 B1 B0 
  1200.       
  1201.       T = TRANSPARENCY      R = RED    G = GREEN    B = BLUE    X = UNUSED
  1202.       
  1203.                        T bit of COLOR00 thru COLOR31 sets ZD_pin HI, When that
  1204.                        color is selected in all video modes.
  1205.                          
  1206. COPCON h  02E  W     A          Coproccessor control register
  1207.  
  1208.                        This is a-1 bit register that when set true, allows
  1209.                        the coprocessor to access the blitter hardware this bit
  1210.                        is cleared power on reset, so that the coprocessor
  1211.                        cannot access the blitter hardware.
  1212.                          
  1213.                          BIT# NAME   FUNCTION
  1214.                          ---- ----   --------
  1215.                        01   CDANG  Coprocessor danger mode. Allows coprocessor 
  1216.                        access to all RGA registers if true.
  1217.                        (if 0, access to RGA>7E)
  1218.                        (On old chips access to only RGA>3E if CDANG=1)
  1219.                        (see VPOSR)
  1220.                          
  1221. COPJMP1   088  S    A           Coprocessor restart at first location
  1222. COPJMP2   08A  S    A           Coprocessor restart at second location
  1223.  
  1224.                        These address are strobe address, that when written to
  1225.                        cause the coprocessor to jump indirect useing the add-
  1226.                        ress contained in the first or second location regs
  1227.                        described below. The coprocessor itself can write to
  1228.                        these address, causeing it`s own jump indirect.
  1229.                          
  1230. COP1LCH h 080  W    A         A Coprocessor first location reg
  1231.                                 (high 5 bits) (old-3 bits)   
  1232. COP1LCL   082  W    A         A Coprocessor first location reg
  1233.                                 (low 15 bits)
  1234. COP2LCH h 084  W    A         A Coprocessor second location reg
  1235.                                 (high 5 bits) (old-3 bits)
  1236. COP2LCL   086  W    A         A Coprocessor second location reg
  1237.                                 (low 15 bits)
  1238.                                 
  1239.                        These regs contain the jump addresses described below
  1240.                                                                                                                     
  1241. COPINS    08C  W   A            Coprocessor inst. fetch identify
  1242.  
  1243.                        This is a dummy address that is generated by the co-
  1244.                        processor whenever it is loading instructions into its
  1245.                        own instruction register.
  1246.                        This actually occurs every coprocessor cycle except
  1247.                        for the second (IR2) cycle of the MOVE instruction. The
  1248.                        three types of instructions are shown below.
  1249.                          
  1250.                        MOVE Move immediate to dest
  1251.                          
  1252.                        WAIT Wait until beam counter is equal to, or greater
  1253.                        than. (Keeps coprocessor off of bus until beam position
  1254.                        has been reached)
  1255.                          
  1256.                        SKIP Skip if beam counter is equal to, or greater than. 
  1257.                        (skips following MOVE inst. unless beam position has
  1258.                        been reached)
  1259.                          
  1260.                MOVE             WAIT UNTIL               SKIP IF
  1261.               ------------------------------------------------------
  1262.           BIT#     IR1        IR2       IR1       IR2       IR1       IR2
  1263.           ----     ---        ---       ---       ---       ---       ---
  1264.           15        x         RD15      VP7       BFD       VP7       BFD
  1265.           14        x         RD14      VP6       VE6       VP6       VE6
  1266.           13        x         RD13      VP5       VE5       VP5       VE5                                        
  1267.      12    x    RD12    VP4    VE4    VP4    VE4
  1268.     11    x    RD11    VP3    VE3    VP3    VE3    
  1269.     10    x    RD10    VP2    VE2    VP2    VE2
  1270.     09    x    RD09    VP1    VE1    VP1    VE1
  1271.     08       DA8    RD08    VP0    VE0    VP0    VE0
  1272.     07       DA7    RD07    HP8    HE8    HP8    HE8
  1273.     06       DA6    RD06    HP7    HE7    HP7    HE7
  1274.     05       DA5    RD05    HP6    HE6    HP6    HE6
  1275.     04       DA4    RD04    HP5    HE5    HP5    HE5
  1276.     03       DA3    RD03    HP4    HE4    HP4    HE4
  1277.     02       DA2    RD02    HP3    HE3    HP3    HE3        
  1278.     01       DA1    RD01    HP2    HE2    HP2    HE2
  1279.     00        0    RD00     1     0     1     1
  1280.                 
  1281.     IR1=First instruction register
  1282.     
  1283.     IR2=Second insturction register
  1284.     
  1285.     DA =Destination address for MOVE instruction.Fetched during 
  1286.         IR1 time,used during IR2 time on RGA bus.
  1287.     
  1288.     RD =RAM Data moved by MOVE instruction at IR2 time
  1289.         directly from RAM to the address given by the DA field.
  1290.         
  1291.     VP =Vertical beam position comparison bit.
  1292.     
  1293.     HP =Horizontal beam position comparison bit.
  1294.            
  1295.      VE =Enable comparison (mask bit)
  1296.  
  1297.     HE -Enable comparison (mask bit)
  1298.  
  1299.     * NOTE BFD=Blitter finished disable. When this bit is true,
  1300.            the blitter finished flag will have no 
  1301.            effect on the coprocessor. When this bit is zero
  1302.            the blitter finished flag must be true
  1303.                    (in addition to the rest of the bit comparisons)
  1304.                before the coprocessor can exit from it`s wait 
  1305.                state, or skip over an instruction. Note  that the 
  1306.            V7 comparison cannot be masked.
  1307.  
  1308.     The coprocessor is basically a 2 cycle machine that requests 
  1309.      the bus only during odd memory cycles. (4 memory cycles per in)
  1310.                     
  1311.     It has priority over the blitter and micro.
  1312.     
  1313.     There are only three types of instructions, MOVE immediate,
  1314.     WAIT until ,and SKIP if. All instructions require 2 bus cycles
  1315.     (and two instruction words).Since only the odd bus cycles are
  1316.     requested, 4 memory cycle times are required per instruction.
  1317.     (memory cycles are 280 ns)
  1318.  
  1319.     There are two indirect jump registers COP1LC and COP2LC.
  1320.     These are 20 bit pointer registers whose contents are
  1321.     used to modify program counter for initalization or jumps.
  1322.     
  1323.     They are transfered to the program counter whenever strobe
  1324.     address COPJMP1 or COPJMP2 are written.In addition  COP1LC 
  1325.     is automatically used at the beginning of each vertical
  1326.     blank time.
  1327.  
  1328.     It is important that one of the jump registers be initalized 
  1329.     and it`s jump strobe address hit, after power up but before 
  1330.     coprocessor DMAis initalized.T his insures a determined
  1331.     startup address, and state.
  1332.  
  1333. DDFSTRT  092  W  A  Display data fetch start(horiz. position)
  1334. DDFSTOP  094  W  A  Display data fetch stop (horiz. position)
  1335.     These registers control the horizontal timing of the beginning
  1336.     and end of the bit plane DMA timing display data fetch.
  1337.     The vertical bit plane DMA timing is identical to the display 
  1338.     windows described above.
  1339.     The bit plane Modulos are dependent on the bit plane 
  1340.     horizontal size, and on this data fetch window size.
  1341.  
  1342.     Register bit assignment 
  1343.     -----------------------
  1344.  
  1345.     BIT# 15  14  13  12  11  10  09  08  07  06  05  04  03  02  01  00
  1346.     USE  XX   X   X   X   X   X   X  H8  H7  H6  H5  H4  H3  H2   X 
  1347.       (X bits should always be driven with 0 to maintain upward 
  1348.        compatability)
  1349.  
  1350.     The tables below show the start and stop timing for 
  1351.     different register contents
  1352.     DDFSTRT (Left edge of display data fetch)
  1353.     ------------------------------------------
  1354.        PURPOSE        H8  H7  H6  H5  H4        
  1355.     ------------------------------------------
  1356.     Extra wide (max)    0   0   1   0   1
  1357.  
  1358.           wide        0   0   1   1   0
  1359.  
  1360.         normal        0   0   1   1   1
  1361.  
  1362.         narrow        0   1   0   0   0
  1363.  
  1364.     DDFSTOP (Right edge of display data fetch)
  1365.     ------------------------------------------
  1366.     ------------------------------------------
  1367.        PURPOSE        H8  H7  H6  H5  H4        
  1368.     ------------------------------------------
  1369.         narrow        1   1   0   0   1
  1370.  
  1371.         normal        1   1   0   1   0
  1372.  
  1373.         wide (max)        1   1   0   1   1
  1374.  
  1375.     Note that these numbers will vary with variable beam counter
  1376.     mode set: (The maxes and mins, that is)
  1377.  
  1378. DIWSTRT 08E  W  A D   Display window start (upper left vert-hor pos)
  1379. DIWSTOP 090  W  A D   Display window stop (lower right vert-hor pos)
  1380.     These registers control the display window size and position,
  1381.     by locating the upper left and lower right corners.
  1382.     
  1383.     BIT# 15  14  13  12  11  10  09  08  07  06  05  04  03  02  01  00
  1384.     USE  V7  V6  V5  V4  V3  V2  V1  V0  H9  H8  H7  H6  H5  H4  H3  H2
  1385.  
  1386.     DIWSTRT is vertically restricted to the upper 2/3 
  1387.     of the display (v8=0),and horizontally restricted to the 
  1388.     left 3/4 of the display (H8=0).*
  1389.     * Poof.. (see DIWHIGH for exceptions) don`t ask me i didn`t write it?
  1390.  
  1391. DIWHIGH  p 1E4  W  A D Display window upper bits for start, stop 
  1392.     this is an added register for Hires chips, and allows 
  1393.     larger start & stop ranges. If it is not written, the above 
  1394.     (DIWSTRT,STOP) description holds. If this register is written,
  1395.     direct start & stop positions anywhere on the screen.
  1396.     It doesn`t affect the UHRES pointers.
  1397.  
  1398.     BIT# 15  14  13  12  11  10  09  08  07  06  05  04  03  02  01  00
  1399.           X   X  H10 H1  H0  V10 V9  V8   X   X  H10 H1  H0  V10 V9  V8
  1400.                       (stop)                 |         (start)
  1401.                            
  1402.     Take care (X) bits should always be written to 0 to 
  1403.     maintain upwards compatibility. H1 and H0 values define 
  1404.     70ns amd 35ns increments respectively, and new LISA bits.
  1405.  
  1406.    NOTE: In all 3 display window registers, horizontal bit
  1407.     positions have been renamed to reflect HIRES pixel 
  1408.     increments, e.g. what used to be called H0 is now referred to as H2.
  1409.  
  1410. DMACON  096  W  A D P DMA control write (clear or set)
  1411. DMACONR 002  R  A   P DMA control (and blitter status) read
  1412.  
  1413.     This register controls all of the DMA channels, and contains 
  1414.     blitter DMA status bits.
  1415.     
  1416.     BIT#    FUNCTION       DESCRIPTION
  1417.     ----    --------   ------------------------------------------------
  1418.      15     SET/CLR       Set/Clear control bit. Determines if bits 
  1419.                written wit a 1 get set or cleared.
  1420.                      Bits written witn a zero are unchanged.
  1421.      14     BBUSY       Blitter busy status bit (read only)
  1422.      13     BZERO          Blitter logic zero status bit. (read only)
  1423.      12     X
  1424.      11     X
  1425.      10     BLTPRI       Blitter DMA prioiry (over CPU micro)
  1426.                (also called "blitter nasty")
  1427.                (disables /BLS pin, preventing micro 
  1428.                from stealing any bus cycles while 
  1429.                blitter DMA is running)
  1430.      09     DMAEN       Enable all DMA below (also UHRES DMA)
  1431.      08     BPLEN          Bit plane DMA enable 
  1432.      07     COPEN       Coprocessor DMA enable
  1433.      06     BLTEN       Blitter DMA enable
  1434.      05     SPREN       Sprite DMA enable
  1435.      04     DSKEN       Disk DMA enable
  1436.      03     AUD3EN         Audio chanel 3 DMA enable    
  1437.      02     AUD2EN         Audio chanel 2 DMA enable                                        
  1438.      01     AUD1EN         Audio chanel 1 DMA enable    
  1439.       00     AUD0EN         Audio chanel 0 DMA enable    
  1440.  
  1441. DSKPTH h 020 W  A    Disk pointer (high 5 bits) (old-3 bits)
  1442. DSKPTL   022 W  A    Disk pointer (low 15 bits)
  1443.         This pair of registers contains the 20 bit address 
  1444.         of disk DMA data. These address registers must be
  1445.         initalized by the processor or coprocessor 
  1446.         before disk DMA is enabled.
  1447.  
  1448. DSKLEN    024 W        P    Disk length
  1449.     This register contains the length (number of words) of 
  1450.     disk DMA data. It also contains 2 control bits. These
  1451.     are a DMA enable bit, and a DMA direction (read/write) bit.
  1452.  
  1453.  
  1454.     BIT#    FUNCTION   DESCRIPTION
  1455.     ----    --------   ------------------------------------------------
  1456.      15    DMAEN       Disk DMA enable
  1457.      14    WRITE      Disk write (RAM or disk) if 1
  1458.      13-0   LENGTH     LENGTH (# of words) of DMA data.
  1459.      
  1460.  
  1461. DSKDAT    026 W  P  Disk DMA data write
  1462. DSKDATR 008 ER   P  Disk DMA  data read (early read dummy address)
  1463.  
  1464.     This register is the disk-DMA data buffer.It contains 2 
  1465.     bytes of data that are either sent to (write) or received 
  1466.     from (read) the disk. The DMA controller automatically 
  1467.     transfers data to or from this register and RAM, and when
  1468.     the DMA data is finished (length=0) it causes a disk 
  1469.     block interrupt. See interrupts below.
  1470.  
  1471. DSKBYTR 01A  R  p Disk data byte and status read
  1472.  
  1473.     This register is the Disk-Microrocessor data buffer.
  1474.     Data from the disk (in read mode) is leaded into this
  1475.     register one byte at a time, and bit 15 (DSKBYT) is set true.
  1476.         
  1477.     BIT#    FUNCTION   DESCRIPTION
  1478.     ----    --------   ------------------------------------------------
  1479.      15     DSKBYT     Disk byte ready (reset on read)
  1480.      14     DMAON      DMAEN (DSKLEN) & DMAEN (DMACON) & DSKEN (DMACON)    
  1481.      13     DISKWRITE  Mirror of bit 14 (WRITE) in DSKLEN 
  1482.      12     WORDEQUAL  This bit true only while DSKSYNC register 
  1483.                  equals the data from disk 
  1484.      11-08  0             Not used
  1485.      07-00  DATA       Disk byte data 
  1486.  
  1487. DSKSYNC  07E W      P Disk sync register,the match code for disk
  1488.           read synchronization. See ADKCON bit 10
  1489.  
  1490. FMODE P  1FC W           Memory Fetch Mode
  1491.         This register controls the fetch mechanism for different
  1492.         types of Chip RAM accesses: 
  1493.     
  1494.     BIT#    FUNCTION       DESCRIPTION
  1495.     ----    --------       -------------------------------------------
  1496.       15     SSCAN2       Global enable for sprite scan-doubling.
  1497.      14     BSCAN2       Enables the use of 2nd P/F modulus on an
  1498.                alternate line basis to support bitplane 
  1499.                scan-doubling.
  1500.      13-04  Unused
  1501.      03     SPAGEM         Sprite page mode (double CAS)
  1502.      02     SPR32        Sprite 32 bit wide mode 
  1503.      01     BPAGEM         Bitplane Page Mode (double CAS)
  1504.      00     BLP32       Bitplane 32 bit wide mode
  1505.  
  1506.     BPAGEM BPL32 Bitplane Fetch Increment Memory Cycle Bus Width       
  1507.       ------------------------------------------------------------
  1508.       0    0    By 2 bytes    (as before) normal CAS     16
  1509.       0    1    By 4 bytes            normal CAS     32        
  1510.       1    0    By 4 bytes            double CAS     16
  1511.       1     1    By 8 bytes                 double CAS 32
  1512.  
  1513.     SPAGEM SPR32 Sprite Fetch Increment  Memory Cycle  Bus Width
  1514.     ------------------------------------------------------------
  1515.       0     0    By 2 bytes    (as before) normal CAS     16
  1516.       0     1    By 4 bytes                normal CAS     32
  1517.       1     0    By 4 bytes                double CAS     16
  1518.       1     1    By 8 bytes                double CAS     32
  1519.  
  1520. HBSTOP 1C6 W  D    Horizontal STOP position 
  1521. HBSTRT 1C4 W  D    Horizontal START position
  1522.         
  1523.         Bits 7-0 contain the stop and start positions,
  1524.         respectively, for programed horizontal blanking in 
  1525.         280nS increments.Bits 10-8 provide a fine position
  1526.         control in 35nS increments.
  1527.  
  1528.     
  1529.     BIT#    FUNCTION   DESCRIPTION
  1530.     ----    --------   ------------------------------------------------    
  1531.      15-11  x          (unused)
  1532.      10     H1         140nS
  1533.      09     H1         70nS
  1534.      08     H0         35nS  
  1535.      07     H10        35840nS
  1536.      06     H9         17920nS
  1537.      05     H8         8960nS
  1538.      04     H7         4480nS
  1539.      03     H6         2240nS
  1540.      02     H5         1120nS
  1541.      01     H4         560nS 
  1542.      00     H3         280nS
  1543.  
  1544.  
  1545. HCENTER H 1E2  W  A  Horizontal position (CCKs) of VSYNC on long field
  1546.  
  1547.      this is necessary for interlace mode with variable beam
  1548.      counters. See BEAMCON0 for when it affects chip outputs.
  1549.      See HTOTAL for bits.
  1550.  
  1551. HHPOSR  H 1DA  R  A  DUAL mode hires Hbeam counter read
  1552. HHPOSW  H 1D8  W  A  DUAL mode hires Hbeam counter write
  1553.  
  1554.     This the secondary beam counter for 
  1555.     the faster mode, triggering the UHRES pointers & doing the 
  1556.     comparisons for HBSTRT,STOP,HTOTAL,HSSRT,HSSTOP
  1557.     (See HTOTAL for bits)
  1558.  
  1559. HHSTOP H  1C2  W  A   Horiz line position for SYNC stop
  1560.         Sets # of colour clocks for sync stop (HTOTAL for bits)
  1561.  
  1562. HHSTRT H  1DE  W  A  Horiz line position for HSYNC stop
  1563.         Sets # of colour clocks for sync start (HTOTAL for bits)
  1564.         See BEAMCON0 for details of when these 2 are active.
  1565.  
  1566. HTOTAL H  1C0  W  A    Highest colour clock count in horiz line
  1567.  
  1568.  
  1569.     BIT#  15  14  13  12  11  10  09  08  07  06  05  04  03  02  01  00
  1570.            x   x   x   x   x   x   x   x  h8  h7  h6  h5  h4  h3  h2  h1
  1571.  
  1572.     (x`s should be driven to 0 for upward compatibility)    
  1573.     Horiz line has theis many + 1 280nS increments. If the 
  1574.     pal bit & LOLDIS are not high, long line/skort line toggle
  1575.     will occur, and there will be this many +2 every other line.
  1576.     Active if VARBEAMEN=1 or DUAL+1.
  1577.  
  1578. INTREQ   09C  W         P Interrupt request bits (clear or set)
  1579. INTREQR  01E  R         P Interrupt request bits (read)
  1580.  
  1581.     This register contains interrupt request bits (or flags).
  1582.     These bits may be polled by the processor, and if enabled
  1583.     by the bits listed in the next register, they may cause 
  1584.     processor interrupts. Both a set and clear operation 
  1585.     are required to load arbitary data into this register.
  1586.     The bit assignments are identical to the enable register 
  1587.     below.   
  1588.  
  1589. INTENA   09A  W        P Interrupt enable bits (clear or set bits)
  1590. INTENAR  01C  R        P Interrupt enable bits (read)
  1591.  
  1592.     This register contains interrupt enable bits. The bit 
  1593.     assignment for both the request, and enable registers
  1594.     is given below.
  1595.  
  1596.  
  1597.     BIT#    FUNCTION  LEVEL DESCRIPTION
  1598.     ----    --------  ----- ----------------------------------------
  1599.      15     SET/CLR         Set/clear control bit. Determines if bits 
  1600.                 written with a 1 get set or cleared. Bits
  1601.                  written with a zero are always unchanged.
  1602.      14     INTEN        Master interrupt (enable only, no request)
  1603.      13     EXTER      6    External interrupt
  1604.      12     DSKSYN     5    Disk sync register (DSKSYNC) matches disk
  1605.      11     RBF        5    Serial port receive buffer full
  1606.      10     AUD3       4    Audio channel 3 block finished 
  1607.       09     AUD2       4    Audio channel 2 block finished 
  1608.       08     AUD1       4    Audio channel 1 block finished 
  1609.       07     AUD0       4    Audio channel 0 block finished 
  1610.      06     BLIT       3    Blitter has finished 
  1611.      05     VERTB      3    Start of vertical blank
  1612.      04     COPER      3    Coprocessor
  1613.      03     PORTS      2    I/O Ports and timers 
  1614.      02     SOFT       1    Reserved for software initated interrupt.
  1615.      01     DSKBLK     1    Disk block finished
  1616.      00     TBE        1    Serial port transmit buffer empty
  1617.     
  1618. JOY0DAT  00A R     D   Joystick-mouse 0 data (left vert, horiz)
  1619. JOY1DAT  00C R     D   Joystick-mouse 1 data (right vert,horiz)
  1620.  
  1621.     These addresses each read a 16 bit register. These in turn
  1622.     are loaded from the MDAT serial stream and are clocked in on 
  1623.     the rising edge of SCLK. MLD output is used to parallel load
  1624.     the external parallel-to-serial converter.This in turn is
  1625.     loaded with the 4 quadrature inputs from each of two game 
  1626.     controller ports (8 total) plus 8 miscellaneous control bits 
  1627.     which are new for LISA and can be read in upper 8 bits of 
  1628.     LISAID.
  1629.     Register bits are as follows:
  1630.     Mouse counter usage (pins  1,3 =Yclock, pins 2,4 =Xclock)
  1631.  
  1632.     BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00    
  1633. JOY0DAT   Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
  1634. JOY1DAT   Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
  1635.  
  1636.  
  1637.     0=LEFT CONTROLLER PAIR, 1=RIGHT CONTROLLER PAIR.
  1638.     (4 counters total).The bit usage for both left and right
  1639.     addresses is shown below. Each 6 bit counter (Y7-Y2,X7-X2) is
  1640.     clocked by 2 of the signals input from the mouse serial
  1641.     stream. Starting with first bit recived:       
  1642.  
  1643.        Serial Bit Name    Description
  1644.     --------------------------------------------------------------------
  1645.         0    | M0H  | JOY0DAT Horizontal Clock
  1646.         1    | M0HQ | JOY0DAT Horizontal Clock (quadrature)
  1647.         2    | M0V  | JOY0DAT Vertical Clock  
  1648.         3    | M0VQ | JOY0DAT Vertical Clock  (quadrature)
  1649.         4    | M1V  | JOY1DAT Horizontall Clock      
  1650.         5    | M1VQ | JOY1DAT Horizontall Clock (quadrature)
  1651.         6    | M1V  | JOY1DAT Vertical Clock    
  1652.         7    | M1VQ | JOY1DAT Vertical Clock (quadrature)
  1653.          
  1654.     Bits 1 and 0 of each counter (Y1-Y0,X1-X0) may be 
  1655.     read to determine the state of the related input signal pair.
  1656.     This allows these pins to double as joystick switch inputs.
  1657.     Joystick switch closures can be deciphered as follows:
  1658.  
  1659.           Directions     Pin#     Counter bits
  1660.           ----------     ----      --------------------
  1661.           Forward          1      Y1 xor Y0 (BIT#09 xor BIT#08)
  1662.           Left             3      Y1 
  1663.           Back             2      X1 xor X0 (BIT#01 xor BIT#00)
  1664.           Right            4      X1
  1665.  
  1666. JOYTEST  036 W   D     Write to all 4  joystick-mouse counters at once.
  1667.           Mouse counter write test data:
  1668.      BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00    
  1669.   JOY0DAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx  
  1670.   JOY1DAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx
  1671.  
  1672.  
  1673. LISAID  H  07C  R   D    Denise/Lisa (video out chip) revision level
  1674.  
  1675.     The original Denise (8362) does not have this register, so
  1676.     whatever value is left over on the bus from the last cycle
  1677.     will be there. ECS Denise (8373) returns hex (fc) in the lower
  1678.     8 bits.Lisa returns hex (f8). The upper 8 bits of this 
  1679.     Register are loaded from the serial mouse bus, and are 
  1680.     reserved for future hardware implentation.
  1681.  
  1682.     The 8 low-order bits are encoded as follows:
  1683.  
  1684.     BIT#  Description
  1685.     ----  --------------------------------------------------
  1686.      7-4  Lisa/Denise/ECS Denise Revision level(decrement to
  1687.           bump revision level, hex F represents 0th rev. level).
  1688.        3  Maintain as a 1 for future generation
  1689.        2  When low indicates AA feature set (LISA) 
  1690.        1  When low indicates ECS feature set (LISA or ECS DENISE)
  1691.        0  Maintain as a 1 for future generation
  1692.  
  1693. POT0DAT h  012  R       P  Pot counter data left pair (vert, horiz)
  1694. POT1DAT h  014  R       P  Pot counter data right pair (vert,horiz)
  1695.  
  1696.     These addresses each read a pair of 8 bit pot counters.
  1697.     (4 counters total). The bit assignment for both 
  1698.     addresses is shown below. The counters are stopped by signals
  1699.     from 2 controller connectors (left-right) with 2 pins each.
  1700.             
  1701.   BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00          
  1702.  RIGHT  Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
  1703.   LEFT  Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0 
  1704.    
  1705.         CONNECTORS 
  1706.         -------------------------PAULA
  1707.                   
  1708.         Loc.    dir.  sym   pin   pin
  1709.                     -----   ----- ----- ----- ----- 
  1710.         RIGHT   Y     RX     9    33
  1711.                     RIGHT   X     RX     5    32
  1712.          LEFT   Y     LY     9    36
  1713.          LEFT   X     LX     5    35
  1714.  
  1715.     With normal (NTSC or PAL) horiz. line rate, the pots will
  1716.     give a full scale (FF) reading with about 500kohms in one
  1717.     frame time. With proportionally faster horiz line times,
  1718.     the counters will count proportionally faster.
  1719.     This should be noted when doing variable beam displays.
  1720.  
  1721. POTGO  034 W      P   Pot port (4 bit) bi-direction and data,
  1722.  
  1723.     and pot counter start.
  1724.  
  1725. POTINP 016 R      P Pot pin data read
  1726.  
  1727.     This register controls a 4 bit bi-direction I/O port
  1728.     that shares the same 4 pins as the 4 pot counters above.
  1729.  
  1730.     BIT#    FUNCTION   DESCRIPTION
  1731.     ----    --------   ----------------------------------------
  1732.            15     OUTRY      Output enable for Paula pin 33    
  1733.      14     DATRY      I/O data Paula pin 33
  1734.      13     OUTRX      Output enable for Paula pin 32
  1735.      12     DATRX      I/O data Paula pin 32 
  1736.      11     OUTLY      Out put enable for Paula pin 36
  1737.      10     DATLY      I/O data Paula pin 36
  1738.      09     OUTLX      Output enable for Paula pin 35
  1739.            08     DATLX      I/O data  Paula pin 35
  1740.      07-01    X        Not used
  1741.      00     START      Start pots (dump capacitors,start counters)
  1742.  
  1743. REFPTR   028  W   A     Refresh pointer 
  1744.  
  1745.     This register is used as a dynamic RAM refresh address
  1746.     generator. It is writeable for test purposes only,and
  1747.     should never be written by the microprocesor.
  1748.  
  1749.  
  1750. SERDAT  030  W      P   Serial port data and stop bits write.
  1751.  
  1752.     This address writes data to a transmit data buffer.
  1753.     Data from this buffer is moved into a serial shift register
  1754.     for output transmission whenever it is empty.This sets the 
  1755.     interrupt request TBE  (transmit buffer empty). A stop bit
  1756.     must be provided as part of the data word. The length
  1757.     of the data word is set by the position of the stop bit.
  1758.  
  1759.  
  1760.   BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
  1761.   USE    0   0   0   0   0   0   S  D8     D7  D6  D5  D4  D3  D2  D1  D0
  1762.  
  1763.     Note :  S= Stop bit =1, D= data bits
  1764.  
  1765. SERDATR  018  R      P  Serial port data and status read.
  1766.  
  1767.     This address reads data from a recive data buffer.
  1768.     Data in this buffer is loaded from a receiving shift
  1769.     register whenever it is full. Several interrupt request 
  1770.     bits are also read at this address, along with the data as
  1771.     shown below.
  1772.   
  1773.  
  1774.     BIT#    FUNCTION   DESCRIPTION
  1775.     ----    --------   ----------------------------------------
  1776.      15     OVRUN      Serial port receiver overun
  1777.      14     RBF        Serial port receive buffer full (mirror)
  1778.      13     TBE        Serial port transmit buffer empty (mirror)
  1779.      12     TSRE       Serial port transmit shift reg. empty
  1780.      11     RXD        RXD pin receives UART serial data for 
  1781.                direct bit test by the micro.
  1782.      10     X          Not used.
  1783.      09     STP        Stop bit
  1784.      08   STP-DB8      Stop bit if LONG, data bit if not.
  1785.      07     DB7        Data bit.
  1786.      06     DB6        Data bit.
  1787.      05     DB5        Data bit.
  1788.      04     DB4        Data bit.
  1789.      03     DB3        Data bit.
  1790.      02     DB2        Data bit.
  1791.      01     DB1        Data bit.
  1792.      00     DB0        Data bit.
  1793.  
  1794. SERPER  032  W        P    Serial port period and control.
  1795.         This register contains the control bit LONG reffered to 
  1796.         above, and a 15 bit number defining the serial port
  1797.         Baud rate.If this number is N,then the baud rate is
  1798.         1 bit every (N+1)*.2794 microseconds.
  1799.  
  1800.     BIT#    FUNCTION   DESCRIPTION
  1801.     ----    --------   ----------------------------------------
  1802.      15     LONG       Defines serial receive as 9 bit word.
  1803.      14-00  RATE       Defines baud rate=1/((N+1)*.2794 microseconds)
  1804.  
  1805. SPRHDAT  H 078   W  exe logic UHRES sprite identifier and data
  1806.  
  1807.     This identifies the cycle when this pointer address is on 
  1808.     the bus accessing the memory.
  1809.  
  1810. SPRHPTH  H  1E8  W   A    UHRES sprite pointer (high 5 bits)
  1811. SPRHPTL  H  1EA  W   A    UHRES sprite pointer (low 15 bits)
  1812.  
  1813.     This pointer is activated in the 1st and 3rd `free` cycles
  1814.     (see BPLHPTH,L) after horiz line start.It increments 
  1815.     for the next line.
  1816.  
  1817. SPRHSTOP H 1D2  W    A    UHRES sprite vertical display stop
  1818.       
  1819.     BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
  1820. SPRHWRM   x   x   x   x   x  v10  v9  v8     v7  v6  v5  v4  v3  v2  v1  v0 
  1821.  
  1822.     SPRHWRM = Swaps the polarity of ARW* when the SPRHDAT comes
  1823.     out so that external devices can detect the RGA and put 
  1824.     things into memory.(ECS and later chips only)
  1825.  
  1826.  
  1827.  
  1828. SPRHSTRT H 1D0  W   A     UHRES sprite vertical display start
  1829.  
  1830.  BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
  1831.         x   x   x   x   x  v10 v9  v8     v7  v6  v5  v4  v3  v2  v1  v0
  1832.   
  1833. SPRxPTH    120  W    A      Sprite x pointer (High 5 bits)
  1834. SPRxPTL    122  W    A      Sprite x pointer (low 15 bits)
  1835.  
  1836.     This pair of registers contains the 20 bit address
  1837.     of sprite x (x=0,1,2,3,4,5,6,7) DMA data.These address
  1838.     registers must be initalized by the processor or coprocessor
  1839.     every vertical blank time.
  1840.  
  1841. SPRxPOS   140   W    A  D   Sprite x vert-horiz start position data.
  1842.  
  1843.     BIT#    SYM        FUNCTION
  1844.         ----    ----        -----------------------------------------
  1845.     15-08  SV7-SV0      Start vertical value.High bit (SV8) is 
  1846.                 in SPRxCTL register below.
  1847.     07-00  SH10-SH3     Sprite horizontal start value. Low order
  1848.             3 bits are in SPRxCTL register below. If 
  1849.             SSCAN2 bit in FMODE is set, then disable
  1850.             SH10 horizontal coincidence detect.This bit
  1851.             is then free to be used by ALICE as an 
  1852.             individual scan double enable.
  1853.  
  1854.  
  1855. SPRxCTL p 142 W     A  D   Sprite position and control data
  1856.  
  1857.      BIT#    SYM        FUNCTION
  1858.            ----   ----        ----------------------------------------
  1859.       15-08  EV7-EV0         End (stop) vert. value. Low 8 bits 
  1860.       07    ATT        Sprite attach control bit (odd sprites only)
  1861.       06    SV9        Start vert value 10th bit.
  1862.       05    EV9             End (stop) vert. value 10th bit
  1863.       04   SH1=0            Start horiz. value, 70nS increment
  1864.       03   SH0=0            Start horiz. value 35nS increment
  1865.       02    SV8             Start vert. value 9th bit
  1866.       01    EV8             End (stop) vert. value 9th bit
  1867.       00    SH2             Start horiz.value,140nS increment
  1868.  
  1869.     These 2 registers work together as position, size and 
  1870.     feature sprite control registers.They are usually loaded
  1871.     by the sprite DMA channel, during horizontal blank,
  1872.     however they may be loaded by either processor any time.
  1873.     Writing to SPRxCTL disables the corresponding sprite.
  1874.  
  1875. SPRxDATA  144  W      D    Sprite x image data register A
  1876. SPRxDATB  146  W      D    Sprite x image data register B
  1877.  
  1878.     These registers buffer the sprite image data.They are 
  1879.     usually loaded by the sprite DMA channel but may be 
  1880.     loaded by either processor at any time. When a horizontal
  1881.     coincidence occurs the buffers are dumped into shift
  1882.     registers and serially outputed to the display, MSB first
  1883.     on the left.
  1884.     NOTE: Writing to the A buffer enables (arms) the sprite.
  1885.     Writing to the SPRxCTL registers disables the sprite.
  1886.     If enabled, data in the A and B buffers will be output
  1887.     whenever the beam counter equals the sprite horizontal 
  1888.     position value in the SPRxPOS register. In lowres mode,
  1889.     1 sprite pixel is 1 bitplane pixel wide.In HRES and 
  1890.     SHRES mode, 1 sprite pixel is 2 bitplane pixels.
  1891.     The DATB bits are the 2SBs (worth 2) for the color registers,
  1892.     and MSB for SHRES. DATA bits are LSBs of the pixels.
  1893.    
  1894.  
  1895. STREQU    038   S    D    Strobe for horiz sync with VB (vert blank) and EQU
  1896. STRVBL    038   S    D    Strobe for horiz sync with VB
  1897. STRHOR    03C   S    D P  Strobe for horiz sync
  1898. STRLONG h 03E   S    D    Strobe for identification of long horiz line (228CC)
  1899.                 
  1900.           One of the first 3 strobe addresses above, it is
  1901.           placed on the RGA bus during the first refresh time
  1902.           slot of every other line, to identify lines with 
  1903.           long counts (228- NTSC, HTOTAL+2- VARBEAMEN=1
  1904.           hires chips only).There are 4 refresh time slots
  1905.           and any not used for strobes will leave a null 
  1906.           (1FE) address on the RGA bus.
  1907.          
  1908.                                      
  1909. VBSTOP H 1CE   W    A    Vertical line for VBLANK stop
  1910. VBSRTR H 1CC   W    A    Vertical line for VBLANK start
  1911.         (V10-0 <- D10-0) Affects CSY pin if BLAKEN=1 and VSY pin
  1912.         if CSCBEN=1 (see BEAMCON0)
  1913.  
  1914. VPOSR  p 004   R    A   Read vert most sig. bits (and frame flop)
  1915. VPOSW    02A   W    A   Write most sig. bits (and frame flop)
  1916.  
  1917.                                       
  1918.  BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
  1919.  USE LOF   I6  I5  I4  I3  I2  I1  I0 LOL --  --  --  --  --  V10 V9  V8
  1920.         
  1921.         LOF=Long frame(auto toggle control bit in BPLCON0)
  1922.         I0-I6 Chip identitication:
  1923.         8361 (Regular) or 8370 (Fat) (Agnus-ntsc)=10
  1924.         8367 (Pal) or 8371 (Fat-Pal) (Agnus-pal)=00
  1925.         8372 (Fat-hr) (agnushr),thru rev4 = 20 Pal,30 NTSC
  1926.         8372 (Fat-hr) (agnushr),rev 5 = 22 Pal, 31 NTSC 
  1927.         8374 (Alice) thru rev 2 = 22 Pal, 32 NTSC
  1928.         8374 (Alice) rev 3 thru rev 4 = 23 Pal, 33 NTSC
  1929.         LOL = Long line bit. When low, it indicates short raster 
  1930.         line.
  1931.         v9,10 -- hires chips only (20,30 identifiers)
  1932.  
  1933. VHPOSR     006  R   A    Read vert and horiz position of beam, or lightpen 
  1934. VHPOSW     02C  W   A    Write vert horiz position of beam, or lightpen
  1935.  BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
  1936.  USE   V7  V6  V5  V4  V3  V2  V1  V0     H8  H7  H6  H5  H4  H3  H2  H1
  1937.  
  1938.         RESOLUTION = 1/160 of SCREEN WITH ( 280 nS)
  1939.  
  1940. VSSTOP H   1CA W   A   Vert position for VSYNC start
  1941. VTOTAL H   1C8 W   A   Highest numbered vertival line (VARBEAMEN = 1)
  1942.  
  1943.     It`s the line number to reset the counter,
  1944.     so there`s this many + 1 in a field. The exception is 
  1945.     if the LACE bit is set (BPLCON0), in which case every 
  1946.     other field is this many + 2 and the short field is this
  1947.     many + 1.
  1948.  
  1949.  
  1950. 5.    NEW LISA DISPLAY MODES  
  1951.  
  1952.     We now have a palette of 2~24 colours.
  1953.  
  1954.     LORES  (320x200)
  1955.     ----------------
  1956.  
  1957.     6 Bitplane (non HAM, non EHB) 64 colours                    !
  1958.     7 Bitplane         128 colours        !
  1959.     8 Bitplane        256 colours        !
  1960.     8 Bitplane HAM      Any 2~24 colours                        !
  1961.     Dual playfield, Max 4 bitplane per playfield                !
  1962.     16 colours per playfield.The bank of 16 colours
  1963.     in the 256 colour palette is selectabel per playfield
  1964.  
  1965.     HIRES  (640x200)
  1966.     ----------------
  1967.  
  1968.     5 Bitplanes        32 colours        @
  1969.     6 Bitplanes        64 colours        @
  1970.     7 Bitplanes        128 colours        @
  1971.     8 Bitplanes        256 colours        @
  1972.     6 Bitplanes EHB      32 * 2 colours            @
  1973.     6 Bitplanes HAM        4096 colours        @
  1974.     8 Bitplanes HAM        any of 2~256 colours    @
  1975.     Dual playfield, max 4 bitplane per playfield            ! or @
  1976.     16 colours per playfield. The bank of 16 colours 
  1977.     in the 256 colour palette is selectable per playfield.
  1978.  
  1979.     SUPERHIRES (1280X200)
  1980.     ---------------------
  1981.  
  1982.     1 or 2 bitplanes, as ECS, but no colour fudging        !
  1983.     3 Bitplanes        8 colours            @
  1984.     4 Bitplanes        16 colours        @    
  1985.     5 Bitplanes        32 colours        $
  1986.     6 Bitplanes        64 colours        $
  1987.     7 Bitplanes        128 colours        $
  1988.     8 Bitplanes        256 colours        $
  1989.     6 Bitplanes EHB         32 * 2 colours            $
  1990.     6 Bitplanes HAM        4O96 colours        $
  1991.     8 Bitplanes HAM         any of 2~24 colours        $
  1992.         Dual Playfield, max 4 bitplanes per playfield   @ or $
  1993.     16 colours per playfield. The bank of 16 of colours
  1994.     in the 256 colours palette is selectable per playfield.
  1995.  
  1996.     VGA  (640X480 non-interlaced)
  1997.     -----------------------------
  1998.  
  1999.     
  2000.     1 or 2 bitplanes, as ECS, but no colour fudging        !
  2001.     3 Bitplanes        8 colours            @
  2002.     4 Bitplanes        16 colours        @    
  2003.     5 Bitplanes        32 colours        $
  2004.     6 Bitplanes        64 colours        $
  2005.     7 Bitplanes        128 colours        $
  2006.     8 Bitplanes        256 colours        $
  2007.     6 Bitplanes EHB         32 * 2 colours            $
  2008.     6 Bitplanes HAM        4O96 colours        $
  2009.     8 Bitplanes HAM         any of 2~24 colours        $
  2010.     Dual playfield,Max 4 bitplanes per playfield            @ or $
  2011.     16 colours per playfield . The bank of 16 colours 
  2012.     in the 256 colour palette is selectable per playfield    
  2013.  
  2014.  
  2015.     Super 72 (848x614 interlaced, 70 Hz frame rate)
  2016.     -----------------------------------------------
  2017.  
  2018.     
  2019.     1 or 2 bitplanes, as ECS, but no colour fudging        1X
  2020.     3 Bitplanes        8 colours            2X
  2021.     4 Bitplanes        16 colours        2X
  2022.     5 Bitplanes        32 colours        4X
  2023.     6 Bitplanes        64 colours        4X
  2024.     7 Bitplanes        128 colours        4X
  2025.     8 Bitplanes        256 colours        4X
  2026.     6 Bitplanes EHB               32 * 2 colours        4X
  2027.     6 Bitplanes HAM        4O96 colours        4X
  2028.     8 Bitplanes HAM         any of 2~24 colours        4X
  2029.     Dual playfield,Max 4 bitplanes per playfield            2X or 4X
  2030.     16 colours per playfield . The bank of 16 colours 
  2031.     in the 256 colour palette is selectable per playfield    
  2032.  
  2033.  
  2034.     All playfield scrolling is now in 35ns increments.
  2035.     Pre AA scrolling was in 140ns increments.
  2036.  
  2037.         SCROLL RANGE AS PROGRAMMED IN BPLCON1
  2038.         -------------------------------------
  2039.  
  2040.              COMBAT 18 ARE LOOKING FOR COOL CODERS,TRADERS,ECT..
  2041.  
  2042.                 =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* 
  2043.                   ÷÷÷÷÷÷÷ CALL OUR BOARDS WORLDWIDE ÷÷÷÷÷÷
  2044.                 =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* 
  2045.      
  2046.           COMBAT 18 Greets LSD,FAIRLIGHT,SILENTS,DUAL CREW,SKID ROW
  2047.